前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 Apache 构建 web虚拟主机详解

基于 Apache 构建 web虚拟主机详解

作者头像
小手冰凉
发布2019-09-10 10:41:21
8790
发布2019-09-10 10:41:21
举报
文章被收录于专栏:小手冰凉

虚拟 web 主机指的是在同一台服务器中运行多个 web 站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为“虚拟” web主机。通过虚拟 web 主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。 使用 httpd 可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务就能够同时支撑起大量的 web 站点。 httpd 支持的虚拟主机类型包括以下三种: 基于域名:相同IP 、相同端口 、不同域名 基于IP地址:不同IP、相同端口 基于端口:相同IP、不同端口 实际中,我们最常用的还是不同域名来访问网站。 一、基于域名的虚拟主机: 首先我们需要为虚拟主机提供域名解析:

代码语言:javascript
复制
[root@www /]# vim /etc/named.conf 
……       //
zone "test1.com" in {
        type master;
        file "test1.com.zone";
};

zone "test2.com" in {
        type master;
        file "test2.com.zone";
};
[root@www /]# vim /var/named/test1.com.zone 
……       //
        in      ns      www.test1.com.
www     in      a       192.168.1.10
[root@www /]# vim /var/named/test2.com.zone
……      //
        in      ns      www.test2.com.
www     in      a       192.168.1.10

为虚拟主机准备网页文档:

代码语言:javascript
复制
[root@www /]# mkdir -p /var/www/html/test1com
[root@www /]# mkdir -p /var/www/html/test2com
[root@www /]# echo "<h1>www.test1.com</h1>" > /var/www/html/test1com/index.html
[root@www /]# echo "<h1>www.test2.com</h1>" > /var/www/html/test2com/index.html

添加虚拟主机配置:

代码语言:javascript
复制
[root@www /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 

配置 test1 的虚拟站点区域:
 ……        // 省略部分内容
<VirtualHost *:80>             # 配置监听地址和端口  “*” 代表任意地址
    ServerAdmin webmaster@test.com     # 设置管理员的邮箱   可删除
    DocumentRoot "/var/www/html/test1com"    # 指定网站根目录
    ServerName www.test1.com                 # 配置域名
    ServerAlias www.dummy-host.example.com     # 配置别名
    ErrorLog "logs/www.test1.com-error_log"   # 记录错误日志
    CustomLog "logs/www.test1.com-access_log" common    # 记录访问日志
        <Directory "/var/www/html">     # 设置目录访问权限
        Require all granted    # 允许所有
        </Directory>
</VirtualHost>
配置 test2 的虚拟站点区域:
<VirtualHost *:80>
    ServerAdmin webmaster@test.com
    DocumentRoot "/var/www/html/test2com"
    ServerName www.test2.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test2.com-error_log"
    CustomLog "logs/www.test2.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
代码语言:javascript
复制
[root@www /]# vim /usr/local/httpd/conf/httpd.conf   # 进入主配置文件
……
Include conf/extra/httpd-vhosts.conf         # 找到本行后将开头 # 去掉
[root@www /]# systemctl restart httpd      重启服务使配置生效

客户机访问 web 验证:

基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解

二、基于 IP 地址的虚拟主机: 每一种方式之间毫无任何关联,千万别把基于IP地址的虚拟主机和基于域名的搞混了

代码语言:javascript
复制
[root@www /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
……
<VirtualHost 192.168.1.10:80>             # 配置监听地址为 192.168.1.10
    ServerAdmin webmaster@test.com
    DocumentRoot "/var/www/html/test1com"
    ServerName www.test1.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test1.com-error_log"
    CustomLog "logs/www.test1.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
<VirtualHost 192.168.1.20:80>             # 配置监听地址为 192.168.1.20
    ServerAdmin webmaster@test.com
    DocumentRoot "/var/www/html/test2com"
    ServerName www.test2.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test2.com-error_log"
    CustomLog "logs/www.test2.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解

三、基于端口的虚拟主机:

代码语言:javascript
复制
[root@www /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
……
<VirtualHost 192.168.1.10:80>
    ServerAdmin webmaster@test.com
    DocumentRoot "/var/www/html/test1com"
    ServerName www.test1.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test1.com-error_log"
    CustomLog "logs/www.test1.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
<VirtualHost 192.168.1.10:8080>               # 修改端口号
    ServerAdmin webmaster@test.com
    DocumentRoot "/var/www/html/test2com"
    ServerName www.test2.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test2.com-error_log"
    CustomLog "logs/www.test2.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
listen 80                      # 监听80端口(默认80也可不用写这一行)
listen 8080                  # 监听8080端口

注意:每次配置完毕后都需要重启服务

基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解
基于 Apache 构建 web虚拟主机详解
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档