CentOS 7中httpd服务构建虚拟Web主机与虚拟目录设置分析

虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中的每个站点实际并不独立占用整个服务器,因此被称为“虚拟”Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
 
ASP站长网使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能同事支撑大量的Web站点。
 
httpd服务支持的虚拟主机类型包括以下三种:
 
基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的;
 
基于IP地址:为每个虚拟主机使用不同的域名,其各自对应的IP地址也不相同;
 
基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用不同的TCP端口,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。
 
这几种虚拟Web主机中,基于域名的虚拟主机是使用最为广泛的;基于IP地址和基于端口的虚拟主机一般只适用于公司内部。
 
基于域名主机的虚拟主机实现步骤:
 
1.为虚拟主机提供域名解析
 
首先需要搭建DNS服务以便提供域名解析,搭建DNS服务详细步骤可以参考博文CentOS 7搭建DNS服务,这里只介绍关键配置信息:
 
 [root@localhost /]# vim /etc/named.conf
//修改DNS服务主配置文件
                               …………    //省略部分内容
zone "a.com" IN {
        type master;
        file "a.com.zone";
};
zone "b.com" IN {
        type master;
        file "b.com.zone";
};
[root@localhost /]# vim /var/named/a.com.zone
//编写a.com区域配置文件
 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      www.a.com.
www     IN      A       192.168.1.1
[root@localhost /]# vim /var/named/b.com.zone
//编写b.com区域配置文件
 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      www.b.com.
www     IN      A       192.168.1.1
[root@localhost /]# systemctl start named
//启动DNS服务
[root@localhost /]# nslookup
> www.a.com
Server:     127.0.0.1
Address:    127.0.0.1#53
 
Name:   www.a.com
Address: 192.168.1.1
> www.b.com
Server:     127.0.0.1
Address:    127.0.0.1#53
 
Name:   www.b.com
Address: 192.168.1.1
//测试解析
2.为虚拟主机准备网页文档
 
[root@localhost /]# mkdir -p /var/www/html/acom
[root@localhost /]# mkdir -p /var/www/html/bcom
[root@localhost /]# echo "<h1>www.a.com</h1>" > /var/www/html/acom/index.html
[root@localhost /]# echo "<h1>www.b.com</h1>" > /var/www/html/bcom/index.html
//文件存放位置可以自定义
3.添加虚拟主机配置
当虚拟Web主机的数量较多时,建议使用独立的虚拟主机配置文件,然后在httpd服务的主配置文件通过Include加载这些配置。这样可以将对httpd服务的主配置文件的修改减至最少,更方便配置内容的维护。
 
root@localhost /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
//创建独立的配置文件
<VirtualHost *:80>                                          //*表示所有地址
    ServerAdmin webmaster@a.com              //管理员邮箱地址       
    DocumentRoot "/var/www/html/acom"       //设置a虚拟站点区域 
    ServerName www.a.com                           //域名
    ServerAlias www.dummy-host.example.com       //别名
    ErrorLog "logs/www.a.com.error_log"                  //错误日志
    CustomLog "logs/www.a.com.access_log" common    //访问日志
    <Directory "/var/www/html">
      Require  all granted              //允许所有主机访问
    </Directory>
</VirtualHost>
 
<VirtualHost *:80>
    ServerAdmin webmaster@b.com
    DocumentRoot "/var/www/html/bcom"
    ServerName www.b.com
    ServerAlias www.dummy1-host.example.com
    ErrorLog "logs/www.b.com.error_log"
    CustomLog "logs/www.b.com.access_log" common
    <Directory "/var/www/html">
      Require  all granted
    </Directory>
</VirtualHost>
[root@localhost /]# vim /usr/local/httpd/conf/httpd.conf 
//编写httpd服务的主配置文件
                  …………              //省略部分内容
Include conf/extra/httpd-vhosts.conf
//加载独立的配置文件
[root@localhost /]# systemctl start httpd
//启动httpd服务

dawei

【声明】:九江站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。