方案
虚拟Web主机的目标是通过不同的访问方式能看到不同站点的网页,而实际只需要一台httpd服务器。Httpd可以支持三种虚拟主机类型,其中的差异在于如何去区分不同的Web站点:
基于域名(FQDN)
基于IP地址
基于端口
若要实现基于域名的虚拟主机,可以在配置httpd服务时添加NameVirtualHost行,用来指定监听虚拟Web主机的IP地址;然后针对每一个虚拟Web站点,添加对应的<VirtualHost IP地址> … …设置即可,其中包括ServerName参数用来指定站点域名、DocumentRoot参数用来指定网页目录。
步骤
步骤一:解决虚拟Web站点的域名解析问题
因为还没有可用的DNS服务器,暂时可以修改客户机(所有需要以域名的方式来访问这两个站点的主机)的hosts文件,添加两个虚拟Web站点的域名与IP地址映射记录。
[root@pc205 ~]# vim /etc/hosts
.. ..
192.168.4.5 www.baidu.com www.google.com
完成添加后,可以使用ping命令简单测试(ping域名,解析出IP地址):
[root@pc205 ~]# ping www.baidu.com //检查虚拟主机1的域名
PING www.baidu.com (192.168.4.5) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.4.5): icmp_seq=1 ttl=64 time=0.024 ms
[root@pc205 ~]# ping www.google.com //检查虚拟主机2的域名
PING www.baidu.com (192.168.4.5) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.4.5): icmp_seq=1 ttl=64 time=0.019 ms
步骤二:配置虚拟Web主机
1)为站点www.google.com、www.baidu.com准备网站文档
[root@svr5 ~]# cd /var/www/html/
[root@svr5 html]# mkdir google baidu
[root@svr5 html]# vim google/index.html
<h1>GOOGLE !!</h1> //站点1的首页
[root@svr5 html]# vim baidu/index.html
<h1>BAIDU !!</h1> //站点2的首页
2)修改httpd服务配置,添加虚拟主机配置
[root@svr5 ~]# vim /etc/httpd/conf.d/vhosts.conf //建独立配置文件
NameVirtualHost 192.168.4.5 //虚拟主机服务的监听地址
<VirtualHost 192.168.4.5> //配置虚拟站点1
DocumentRoot /var/www/html/google
ServerName www.google.com
</VirtualHost>
<VirtualHost 192.168.4.5> //配置虚拟站点2
DocumentRoot /var/www/html/baidu
ServerName www.baidu.com
</VirtualHost>
[root@svr5 ~]# grep ^Include /etc/httpd/conf/httpd.conf
Include conf.d/*.conf //确认此包含设置已开启
[root@svr5 ~]# service httpd restart //重启httpd服务
停止 httpd: [确定]
启动 httpd: [确定]
步骤三:在客户机上访问各虚拟Web主机
1)从浏览器访问http://www.google.com
效果如图-8所示。
2)从浏览器访问http://www.baidu.com
效果如图-9所示。