虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。使用httpd可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。httpd支持的虚拟主机类型包括一下三种:
基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。这是使用最为普遍的虚拟Web主机类型。
基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。这是使用最为普遍的虚拟Web主机类型。
基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也 不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。
基于端口:为每个虚拟主机使用不同的域名,IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。
三、配置基于域名的虚拟主机DNS自行搭建,如果有不明白的可以参考博文:CentOS7简单搭建DNS服务
下面不在进行详细的解释。
为每个虚拟web主机准备网站目录及网页文档。为了方便测试,分别为每个虚拟web主机提供包含不同的首页文件:
[root@centos01 ~]# mkdir -p /var/www/ [root@centos01 ~]# mkdir -p /var/www/bdqn.com [root@centos01 ~]# mkdir -p /var/www/benet.com [root@centos01 ~]# echo "www.bdqn.com" > /var/www/bdqn.com/index.html [root@centos01 ~]# echo "www.benet.com" > /var/www/benet.com/index.html 5、修改主配置文件支持虚拟主机 [root@centos01 ~]# vi /usr/local/httpd/conf/httpd.conf <!--编辑主配置文件--> 390 # Virtual hosts 391 Include conf/extra/httpd-vhosts.conf <!--删除该行前面的#号--> 6、修改虚拟主机访问权限 [root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf <!--创建独立的配置文件--> NameVirtualHost 192.168.100.10:8 <!--虚拟主机监听的IP地址,默认是*表示监听所有--> <Directory "/var/www/"> <!--虚拟站点根目录--> order deny,allow <!--先拒绝后允许访问--> allow from all <!--允许所有人访问--> </Directory> 7、配置基于域名的虚拟主机 [root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf NamevirtualHost :80 <!--监听域名--> NamevirtualHost :80 <!--监听域名--> <Directory "/var/www/"> order deny,allow allow from all </Directory> <VirtualHost 192.168.100.10:80> <!--虚拟主机IP地址和端口号--> DocumentRoot "/var/www/bdqn.com/" <!--网站根目录位置--> ServerName <!--网站域名--> ErrorLog "logs/www.bdqn.com.error_log" <!--错误日志--> CustomLog "logs/www.bdqn.com.access_log" common <!--访问日志--> </VirtualHost> <VirtualHost 192.168.100.10:80> <!--参考以上注释--> DocumentRoot "/var/www/benet.com/" ServerName ErrorLog "logs/www.benet.com.error_log" CustomLog "logs/www.benet.com.access_log" common </VirtualHost> [root@centos01 ~]# systemctl restart httpd <!--重启httpd服务--> 8、客户端访问验证