构建虚拟Web主机
构建虚拟web主机:
虚拟web主机指的是在同一台服务器中运行多个web站点,其中的每一个站点实际上并不独立占用整个服务器,所以被称为“虚拟的”web主机。
通过虚拟web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
Httpd支持的虚拟主机类型包括:
基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。最普遍。
基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不想用。这种方式需要为服务器配备多个网络接口,应用并不广泛。
基于端口:不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。
基于域名的虚拟主机:
实验描述:
实现两个虚拟web主机www.benet.com和www.accp.com为例,使用一台httpd服务器搭建,IP地址为192.168.10.1。
准备工作:
1、为虚拟主机提供域名解析:
[root@ns ~]# vim /var/named/chroot/etc/named.conf
options {
directory "/var/named";
};
zone "benet.com"IN{
type master;
file "benet.com.zone";
};
zone "accp.com" IN{
type master;
file "accp.com.zone";
};
$ TTL 86400
@ SOA benet.com. root.benet.com. (
2013070523
4H
30M
12H
1D
)
@ IN NS www.benet.com.
IN NS ns2.benet.com.
www IN A 192.168.10.1
ns2 IN A 192.168.10.2
* IN A 192.168.10.1
2、为虚拟机准备网页文档:
3、添加虚拟主机配置:
虚拟web主机,需要配置的方面:
监听地址:使用NameVirtualHost配置想指定提供虚拟主机服务的IP地址,即进行域名查询时各虚拟Web主机的Ip地址。
虚拟主机区域:使用<VirtualHost 监听地址> . . . < /VirtualHost >区域配置,为每一个虚拟web主机建立独立的配置内容。其中至少包括虚拟主机的网站名称、网页根目录的配置项,其他可根据实际需要添加。
目录权限:使用<Directory 目录位置> . . . </Directory>区域配置,为每一个虚拟web主机的网站目录设置访问权限,如允许任何人访问。
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<Directory "/var/www/html">
Order allow,deny
Allow from all
</Directory>
Name VirtualHost 192.168.10.1
<VirtualHost 192.168.10.1>
DocumentRoot /var/www/html/benetcom
ServerName www.benet.com
ErrorLog logs/www.benet.com.error_log
CustomLog logs/www.benet.com.access_logcommon
</VirtualHost>
<VirtualHost 192.168.10.1>
DocumentRoot /var/www/html/accpcom
ServerName www.accp.com
ErrorLog logs/www.accp.com.error_log
CustomLog logs/www.accp.com.access_logcommon
</VirtualHost>
[root@ns ~]# vim /usr/local/httpd/conf/httpd.conf
添加Include conf/extra/httpd-vhosts.conf以便加载独立的配置文件。
重启服务使新配置生效:
4、在客户机中访问虚拟web主机:
基于IP地址的虚拟主机:
配置基于IP地址的虚拟web主机时,不再使用NameVirtualHost配置项来指定监听服务的IP地址,而只要在每个虚拟web主机的VirtualHost配置中指定各自域名所对应的IP地址。
[root@ns ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<Directory "/var/www/html">
Order allow,deny
Allow from all
</Directory>
<VirtualHost 210.52.149.2>
DocumentRoot /var/www/html/benetcn
ServerName www.benet.cn
</VirtualHost>
<VirtualHost 220.181.132.1>
DocumentRoot /var/www/html/accpcn
ServerName www.accp.cn
</VirtualHost>
构建基于端口的虚拟主机:
通常只用于同一个 web 站点,其针对的网站名称、 IP 地址往往是相同的,但通过不同的 TCP 端口来提供访问不同网页内容的服务入口。
配置基于端口的虚拟web主机时,不需要使用NameVirtualHost配置项。而是通过多个Listen配置项来指定要监听的TCP端口号,每个虚拟web主机的VirtualHost配置中应同时指定IP地址和端口号。
访问方式:http://www.accp.com:800
总结:httpd服务支持三种类型的虚拟Web主机,分别是基于域名、基于IP地址、基于端口的虚拟主机。