配置基于域名的虛擬主機(jī)
配置基于域名的虛擬主機(jī)NameVirtualHost:為了使用基于域名的虛擬主機(jī),你必須指定服務(wù)器的IP 地址(和可能的端口)來(lái)使主機(jī)接受請(qǐng)求,這時(shí)使用NameVirtualHost 來(lái)指定設(shè)置。如果
配置基于域名的虛擬主機(jī)
NameVirtualHost:為了使用基于域名的虛擬主機(jī),你必須指定服務(wù)器的IP 地址(和可能的端口)來(lái)使主機(jī)接受請(qǐng)求,這時(shí)使用NameVirtualHost 來(lái)指定設(shè)置。如果服務(wù)器上所有的IP 都會(huì)用到,也可以用‘*’作為NameVirtualHost 的參數(shù)。如果使用多端口(如運(yùn)行SSL )你必須在參數(shù)中指定一個(gè)端口號(hào),比如“*:80”。請(qǐng)注意,在NameVirtualHost 指令中指定IP 地址并不會(huì)使服務(wù)器自動(dòng)偵聽(tīng)那個(gè)IP 地址。
下一步就是為每個(gè)虛擬主機(jī)建立
取消中心主機(jī)(Mainhost )
如果你想在現(xiàn)有的web 服務(wù)器上增加虛擬主機(jī),你必須也為現(xiàn)存的主機(jī)建造一個(gè)
比如說(shuō) ,你假設(shè)為域名www.domain.tld 提供服務(wù),而你又想在同一個(gè)IP 地址上增加一個(gè)名叫www.otherdomain.tld 的虛擬主機(jī),
,你只需在httpd.conf 中加入以下內(nèi)容: NameVirtualHost *:80
當(dāng)然,你可以用一個(gè)因定的IP 地址來(lái)代替NameVirtualHost 和VirtualHost 中的“*”號(hào) ,以達(dá)一以一些特定目的。比如說(shuō) ,你可能會(huì)希望在一個(gè)IP 地址上運(yùn)行一個(gè)基于域名的虛擬主機(jī),而在另外一個(gè)IP 地址上運(yùn)行一個(gè)基于IP 的或是另外一套基于域名的虛擬主機(jī)。很多服務(wù)器希望自己能通過(guò)不只一個(gè)域名被訪問(wèn)。我們可以把AserverAlias 指令放入
這樣,所有對(duì)域domain.tld 的訪問(wèn)請(qǐng)求都將由虛擬主機(jī)www.domain.tld 處理。能配符記“*”和“?”可以用于域名的匹配。
,當(dāng)你不能僅僅搞個(gè)名字然后把它放到ServerName 或ServerAlias 里就算完了。你必須先在你的DNS 服務(wù)器上進(jìn)行配置,將這些名字和您服務(wù)器上的一個(gè)IP 地址建立映射關(guān)系。
最后,你可以把基他一些指令放入
這樣, 當(dāng)一個(gè)請(qǐng)求到過(guò)的時(shí)候,服務(wù)器會(huì)首先檢查它是否使用了一個(gè)能和NameVirtualHost 相匹配的IP 地址。如果能夠匹配,它就會(huì)查找每個(gè)與這個(gè)IP 地址對(duì)應(yīng)的
綜上所述,第一個(gè)列出的虛擬主機(jī)充當(dāng)了默認(rèn)虛擬主機(jī)的角色。當(dāng)一個(gè)IP 地址與NameVirtualHost 指令中的配置相符的主服務(wù)器中的DocumentRoot 交永遠(yuǎn)不會(huì)被用到。所以,如果你想創(chuàng)建一段特殊的配置用于處理不對(duì)就任何一個(gè)虛擬主機(jī)的請(qǐng)求的話,你只簡(jiǎn)單的把這配置放到
與舊版瀏覽器的兼容性
前面提過(guò),有些瀏覽器無(wú)法對(duì)基于域名的虛擬主機(jī)發(fā)送必要的數(shù)據(jù),從而使其無(wú)法正常工作。這些瀏覽器將會(huì)收到由配置中符合那個(gè)Ip 地址的第一個(gè)列出的虛擬主機(jī)發(fā)出的頁(yè)面(基于域名的主虛擬主機(jī))。
究竟什么算舊?? 請(qǐng)注意,當(dāng)我們說(shuō)到舊的時(shí)候,我們并不是真說(shuō)它們很古老。其實(shí)現(xiàn)實(shí)中您 未必就能用上這些瀏覽器?,F(xiàn)在幾乎所有的瀏覽器都會(huì)發(fā)送基于域名的虛擬主機(jī)所必須的Host 頭了。
雖然有點(diǎn)麻煩。但您 還是朋可能會(huì)用到ServerPath 指令,以下是一個(gè)配置實(shí)例:
NameVirtualHost 111.22.33.44
以上這些說(shuō)明了什么呢?它說(shuō)明一個(gè)具有“/domain”開(kāi)頭的任何URL 都會(huì)為www.domain.tld 這個(gè)虛擬主機(jī)民伺服。這意味著這個(gè)頁(yè)面可以由http://www.domain.tld/domain/的形式為所有的瀏覽器所訪問(wèn)。能夠發(fā)送“Host :”頭的瀏覽器也能使用http://www.domain.tld/這種形式來(lái)訪問(wèn)它。
,為了達(dá)到這樣的目的。您 先要在您 的主虛擬主機(jī)的頁(yè)面上放一個(gè)到http://www.domain.tld/domain/的鏈接。然后,確保在虛擬主機(jī)的頁(yè)面中使用的全是相對(duì)鏈接(諸如:“file.html ”或“../icons/image.gif”)或者是包含/domain/這個(gè)前綴(比如:“http://www.domain.tld/domain/misc/file.html”或“/domian/misc/file.html”)。完成這些可能需要一些嘗試,但遵照上述指導(dǎo)將會(huì)確保你的頁(yè)面能夠?yàn)樗械臑g覽器正確顯示,不論新舊。