虚拟主机指的是在同一台服务器中运行多个Web站点,这个在之前的windows服务器部分已经介绍过。
有三种技术可以实现虚拟主机:基于域名的虚拟主机,基于IP地址的虚拟主机,基于端口的虚拟主机。
在实际使用中主要是基于域名的虚拟主机,这里对于其它两种虚拟主机方式就不再介绍了。下面就来实现两个基于域名的虚拟主机站点:www.example.comwww.ytvc.com.cn,使得这两个域名都对应到同一个IP:192.168.11.61。


要实现基于域名的虚拟主机,首先要在DNS服务器中配置好相应的域名。
首先在DNS主配置文件/etc/named.conf中添加2个区域:
RHEL6.3配置Apache服务器(2) 构建虚拟主机_apache

然后编辑区域数据文件,添加主机记录。

RHEL6.3配置Apache服务器(2) 构建虚拟主机_虚拟主机_02

如果嫌DNS服务器配置太麻烦,也可以在客户端采用hosts文件进行域名解析,在/etc/hosts文件中添加如下一行:
192.168.11.61 www.example.comwww.ytvc.com.cn
域名配置好了之后,再来创建2个站点的主目录以及首页文件。
RHEL6.3配置Apache服务器(2) 构建虚拟主机_linux_03

最后修改Apache的配置文件:
# vim /etc/httpd/conf/httpd.conf

在文件最后的Virtual Hosts部分增加如下的内容:
RHEL6.3配置Apache服务器(2) 构建虚拟主机_基于域名_04

这些增加的内容的含义:
 

  • NameVirtualHost 192.168.11.61
    表示在192.168.11.61这台主机上启用虚拟主机功能。

  •  <VirtualHost 192.168.11.61>……</VirtualHost>
    这是虚拟主机的标准格式,每增加一台虚拟主机就要添加这样一个段落。

  •  DocumentRoot /var/www/example
    指定虚拟主机的主目录。

  •  ServerName www.example.com
    指定虚拟主机的域名。

最后将httpd服务重启后生效。
# service httpd restart


打开浏览器,在地址栏中输入http://www.example.com,就可以访问到第一个虚拟主机站点。
RHEL6.3配置Apache服务器(2) 构建虚拟主机_基于域名_05

输入http://www.ytvc.com.cn,就可以访问到第二个虚拟主机站点:

RHEL6.3配置Apache服务器(2) 构建虚拟主机_apache_06