亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 虛擬主機(jī)
   致謝 | 譯者聲明 | 本篇譯者:金步國(guó) | 本篇譯稿最后更新:2006年1月18日 | 獲取最新版本

基于主機(jī)名的虛擬主機(jī)

本文檔說(shuō)明了如何使用基于域名的虛擬主機(jī)。

top

基于域名的虛擬主機(jī)和基于IP的虛擬主機(jī)比較

基于IP的虛擬主機(jī)使用連接的IP地址來(lái)決定相應(yīng)的虛擬主機(jī)。這樣,你就需要為每個(gè)虛擬主機(jī)分配一個(gè)獨(dú)立的IP地址。而基于域名的虛擬主機(jī)是根據(jù)客戶端提交的HTTP頭中標(biāo)識(shí)主機(jī)名的部分決定的。使用這種技術(shù),很多虛擬主機(jī)可以共享同一個(gè)IP地址。

基于域名的虛擬主機(jī)相對(duì)比較簡(jiǎn)單,因?yàn)槟阒恍枰渲媚愕腄NS服務(wù)器將每個(gè)主機(jī)名映射到正確的IP地址,然后配置Apache HTTP服務(wù)器,令其辨識(shí)不同的主機(jī)名就可以了;谟蛎姆⻊(wù)器也可以緩解IP地址不足的問(wèn)題。所以,如果沒(méi)有特殊原因使你必須使用基于IP的虛擬主機(jī),您最好還是使用基于域名的虛擬主機(jī)。下列情況下,你可能會(huì)想要使用基于IP的虛擬主機(jī):

top

使用基于域名的虛擬主機(jī)

為了使用基于域名的虛擬主機(jī),你必須指定服務(wù)器IP地址(和可能的端口)來(lái)使主機(jī)接受請(qǐng)求,這個(gè)可以用NameVirtualHost指令來(lái)進(jìn)行配置。如果服務(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地址。請(qǐng)參閱設(shè)置Apache使用的地址和端口一章獲取更多詳情。另外,這里設(shè)定的IP地址必須對(duì)應(yīng)服務(wù)器上的一個(gè)網(wǎng)絡(luò)接口。

下一步就是為每個(gè)虛擬主機(jī)建立<VirtualHost>段。<VirtualHost>的參數(shù)與NameVirtualHost的參數(shù)必須是一樣的(比如說(shuō),一個(gè)IP地址或"*"代表的所有地址)。在每個(gè)<VirtualHost>段中,至少要有一個(gè)ServerName指令來(lái)指定伺服哪個(gè)主機(jī)和一個(gè)DocumentRoot指令來(lái)說(shuō)明這個(gè)主機(jī)的內(nèi)容位于文件系統(tǒng)的什么地方。

取消中心主機(jī)(Mainhost)

如果你想在現(xiàn)有的web服務(wù)器上增加虛擬主機(jī),你必須也為現(xiàn)存的主機(jī)建造一個(gè)<VirtualHost>定義塊。這個(gè)虛擬主機(jī)中ServerNameDocumentRoot所包含的內(nèi)容應(yīng)該與全局的ServerNameDocumentRoot保持一致。還要把這個(gè)虛擬主機(jī)放在配置文件的最前面,來(lái)讓它扮演默認(rèn)主機(jī)的角色。

比如說(shuō),假設(shè)你正在為域名www.domain.tld提供服務(wù),而你又想在同一個(gè)IP地址上增加一個(gè)名叫www.otherdomain.tld的虛擬主機(jī),你只需在httpd.conf中加入以下內(nèi)容:

NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>

當(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)。我們可以把ServerAlias指令放入<VirtualHost>小節(jié)中來(lái)解決這個(gè)問(wèn)題。比如說(shuō)在上面的第一個(gè)<VirtualHost>配置段中ServerAlias指令中列出的名字就是用戶可以用來(lái)訪問(wèn)同一個(gè)web站點(diǎn)的其它名字:

ServerAlias domain.tld *.domain.tld

這樣,所有對(duì)域domain.tld的訪問(wèn)請(qǐng)求都將由虛擬主機(jī)www.domain.tld處理。通配符標(biāo)記"*"和"?"可以用于域名的匹配。當(dāng)然你不能僅僅搞個(gè)名字然后把它放到ServerNameServerAlias里就算完了。你必須先在你的DNS服務(wù)器上進(jìn)行配置,將這些名字和您服務(wù)器上的一個(gè)IP地址建立映射關(guān)系。

最后,你可以把其他一些指令放入<VirtualHost>段中,以更好的配置一個(gè)虛擬主機(jī)。大部分指令都可以放入這些<VirtualHost>段中以改變相應(yīng)虛擬主機(jī)配置。如果您想了解一個(gè)特定的指令是否可以這樣運(yùn)用,請(qǐng)參見(jiàn)指令的作用域。主服務(wù)器(main server)范圍內(nèi)的配置指令(在所有<VirtualHost>配置段之外的指令)僅在它們沒(méi)有被虛擬主機(jī)的配置覆蓋時(shí)才起作用。

這樣,當(dāng)一個(gè)請(qǐng)求到達(dá)的時(shí)候,服務(wù)器會(huì)首先檢查它是否使用了一個(gè)能和NameVirtualHost相匹配的IP地址。如果能夠匹配,它就會(huì)查找每個(gè)與這個(gè)IP地址相對(duì)應(yīng)的<VirtualHost>段,并嘗試找出一個(gè)與請(qǐng)求的主機(jī)名相同的ServerNameServerAlias配置項(xiàng)。如果找到了,它就會(huì)使用這個(gè)服務(wù)器。否則,將使用符合這個(gè)IP地址的第一個(gè)列出的虛擬主機(jī)

綜上所述,第一個(gè)列出的虛擬主機(jī)充當(dāng)了默認(rèn)虛擬主機(jī)的角色。當(dāng)一個(gè)IP地址與NameVirtualHost指令中的配置相符的時(shí)候,主服務(wù)器中的DocumentRoot永遠(yuǎn)不會(huì)被用到。所以,如果你想創(chuàng)建一段特殊的配置用于處理不對(duì)應(yīng)任何一個(gè)虛擬主機(jī)的請(qǐng)求的話,你只要簡(jiǎn)單的把這段配置放到<VirtualHost>段中,并把它放到配置文件的最前面就可以了。

top

與舊版瀏覽器的兼容性

前面提過(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í)中您未必就能用上這些瀏覽器。現(xiàn)在幾乎所有的瀏覽器都會(huì)發(fā)送基于域名的虛擬主機(jī)所必須的Host頭了。

雖然有點(diǎn)麻煩。但您還是有可能會(huì)用到ServerPath指令,以下是一個(gè)配置實(shí)例:

NameVirtualHost 111.22.33.44

<VirtualHost 111.22.33.44>
ServerName www.domain.tld
ServerPath /domain
DocumentRoot /web/domain
</VirtualHost>

以上這些說(shuō)明了什么呢?它說(shuō)明一個(gè)具有"/domain"開頭的任何URI都會(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"或"/domain/misc/file.html")。

完成這些可能需要一些嘗試,但遵照上述指導(dǎo)將會(huì)確保你的頁(yè)面能夠?yàn)樗械臑g覽器所正確顯示,不論新舊。