使用虚拟主机首先要在httpd.conf里把虚拟主机配置文件的包含路径前的#去掉,就可以用extra/httpd-vhost.conf配置虚拟主机了。否则要在httpd.conf这个主配置文件里写虚拟主机的信息,这样是很不好的,还是应该要把虚拟主机放在extra/httpd-vhost.conf的好
基于名字的虚拟主机
1、在虚拟主机配置问价里设置NameVirtualHost相相应的IP和端口号(以后凡是映射到该IP的访问都会使用基于名字的虚拟机)
2、在容器内设置ServerName等信息用来匹配唯一的域名
基于IP的虚拟机
基于IP的虚拟主机可以支持那些不支持HTTP/1.1主机技术的浏览器,虽然现在这些不支持HTTP/1.1的浏览器已经绝种了。另外由于基于名字的虚拟主机不支持SSL,基于IP的虚拟还可以解决这个问题。
基于IP的虚拟主机
由于服务器上的物理接口数量通常都是有限的,我们可以用虚拟的网络接口来处理虚拟主机,这也被称为建立网络别名,虚拟的IP就可以给基于IP的虚拟主机用了。Linux下的做法:
查看eth0的配置:ifconfig eth0
在eth0接口的基础上建立一个名为eth0:0的虚拟网络接口:ifconfig eht0:0 192.168.132.7 netmask 255.255.255.0 up
查看新建立的eth0:0网络接口:ifconfig eth0:0
需要注意的是新建立的虚拟网络接口所使用的硬件MAC地址和原有的网络接口硬件地址是一样的。
只要保证上面的IP不同即可,另外要保证这里的IP:port和NameVirtualHost里的一样。
动态虚拟主机
使用vhost_alias_module模块建立动态虚拟主机
UseCanonicalName off
VirtualDocumentRoot /srv/www/vhost/%1
这样的话,访问dafanzi.com时。其根目录就在/src/www/vhost/dafanzi/下了
注意这里的UseCanoicalName一定要用off。当用off时,就由用户提供的主机名与端口信息建立自引用URl.。当用on时,就会用ServerName这个域名建立自引用URL、SERVER_NAME、CGI中的服务器端口
使用rewrite_module模块建立大量的虚拟主机
……