使用虛擬主機首先要在httpd.conf里把虛擬主機配置文件的包含路徑前的#去掉,就可以用extra/httpd-vhost.conf配置虛擬主機了。否則要在httpd.conf這個主配置文件里寫虛擬主機的信息,這樣是很不好的,還是應(yīng)該要把虛擬主機放在extra/httpd-vhost.conf的好
基于名字的虛擬主機
1、在虛擬主機配置問價里設(shè)置NameVirtualHost相相應(yīng)的IP和端口號(以后凡是映射到該IP的訪問都會使用基于名字的虛擬機)
2、在容器內(nèi)設(shè)置ServerName等信息用來匹配唯一的域名
基于IP的虛擬機
基于IP的虛擬主機可以支持那些不支持HTTP/1.1主機技術(shù)的瀏覽器,雖然現(xiàn)在這些不支持HTTP/1.1的瀏覽器已經(jīng)絕種了。另外由于基于名字的虛擬主機不支持SSL,基于IP的虛擬還可以解決這個問題。
基于IP的虛擬主機
由于服務(wù)器上的物理接口數(shù)量通常都是有限的,我們可以用虛擬的網(wǎng)絡(luò)接口來處理虛擬主機,這也被稱為建立網(wǎng)絡(luò)別名,虛擬的IP就可以給基于IP的虛擬主機用了。Linux下的做法:
查看eth0的配置:ifconfig eth0
在eth0接口的基礎(chǔ)上建立一個名為eth0:0的虛擬網(wǎng)絡(luò)接口:ifconfig eht0:0 192.168.132.7 netmask 255.255.255.0 up
查看新建立的eth0:0網(wǎng)絡(luò)接口:ifconfig eth0:0
需要注意的是新建立的虛擬網(wǎng)絡(luò)接口所使用的硬件MAC地址和原有的網(wǎng)絡(luò)接口硬件地址是一樣的。
只要保證上面的IP不同即可,另外要保證這里的IP:port和NameVirtualHost里的一樣。
動態(tài)虛擬主機
使用vhost_alias_module模塊建立動態(tài)虛擬主機
UseCanonicalName off
VirtualDocumentRoot /srv/www/vhost/%1
這樣的話,訪問dafanzi.com時。其根目錄就在/src/www/vhost/dafanzi/下了
注意這里的UseCanoicalName一定要用off。當(dāng)用off時,就由用戶提供的主機名與端口信息建立自引用URl.。當(dāng)用on時,就會用ServerName這個域名建立自引用URL、SERVER_NAME、CGI中的服務(wù)器端口
使用rewrite_module模塊建立大量的虛擬主機
……