虛擬主機(jī)分為基于 ip 地址的( IP-based )和基于名稱的( name-based )兩種。
基于 IP 地址的虛擬主機(jī)大家雖然在同一臺(tái)機(jī)器上,還是要給每個(gè)域名配置獨(dú)立的 IP 地址,這樣看來還不能算是一 種很理想的方案。有沒有用一臺(tái)機(jī)器、一個(gè) IP 地址,又能實(shí)現(xiàn)獨(dú)立的域名呢?
這個(gè)想法隨著 http/1.1 協(xié)議的出現(xiàn)得到了實(shí)現(xiàn)。它的原理是用 Web 服務(wù)器和瀏覽器共同作用來實(shí)現(xiàn)把虛擬的域名與 相應(yīng)的目錄或站點(diǎn)對(duì)應(yīng)。這樣用戶在瀏覽器里輸入不同的名字,雖然由 DNS 服務(wù)器解析出的是同一個(gè) IP ,但得到的卻是 不同的內(nèi)容。看上去就象兩個(gè)獨(dú)立的域名了。所以這種基于名稱的虛擬主機(jī)又稱為非 IP 的( non-IP )。這同時(shí)還有一 個(gè)用處,可以給很長(zhǎng)的 URL 起一個(gè)即好記又有意義的別名。這就是虛擬域名。
實(shí)現(xiàn)虛擬域名要有兩方面的支持:
一是 Web 服務(wù)器:
現(xiàn)在有很多的 Web Server 支持基于名稱的虛擬主機(jī)。象 Netscape , IIS 等都支持。當(dāng)然用的最多的還是 Apache Web Server ,究其原因是因?yàn)樗渲梅奖悖€是免費(fèi)的,而且它是第一個(gè)實(shí)現(xiàn)了基于名稱的虛擬主機(jī)的服務(wù)器產(chǎn)品。
第一步是要 DNS 服務(wù)器認(rèn)識(shí)你要增加的域名,也就是把它解釋成相應(yīng)的 IP 地址。因?yàn)槲覀円?Web 服務(wù)器來區(qū)分 域名,所以這個(gè) IP 地址自然得是你 Web Server 所管理的了。
你所要做的就是 DNS 服務(wù)中增加一個(gè)別名記錄,假定你要增加的是 aaa.domain.com ,想要指到 www.domain.com , 就可寫成:
aaa IN CNAME www.domain.com.
也許你會(huì)想如果我要增加很多域名,那不是很麻煩,而且 DNS 服務(wù)器的記錄文件要很大嘍。好,我們來騙一下 DNS 服務(wù)器,把“ aaa ”改成“ * ”,這樣它就把所有沒給出設(shè)置的以 domain.com 結(jié)尾的記錄全部轉(zhuǎn)到 www.domain.com 去了,不管是 aaa.domain.com 還是 bbb.domain.com 。這不會(huì)影響已有的記錄。
下一步就要配置 Web 服務(wù)器了。我們選兩個(gè)常用的: IIS 和 Apache for NT 。
一、 IIS (記住,只有 4.0 版以上才支持基于名稱的虛擬主機(jī)。)
進(jìn)入 IIS 的服務(wù)管理器,在相應(yīng)的服務(wù)器上選擇新增 Web 站點(diǎn),給站點(diǎn)起個(gè)名字,選擇好 IP 地址(也就是前面設(shè) 好的由 DNS 服務(wù)器所指向的)。選擇好主目錄路徑,如果是映射到遠(yuǎn)端的 URL 的話,可以先設(shè)個(gè)臨時(shí)的路徑。
完成后進(jìn)入新建的 Web 站點(diǎn)的屬性,在“ Web 站點(diǎn)”的標(biāo)簽里點(diǎn)“高級(jí) ... ”按鈕,編輯標(biāo)識(shí)記錄,在“主機(jī)標(biāo)題 名”處填寫要加入的虛擬域名,如: aaa.domain.com ,記住要填完整,不能光打 aaa 。現(xiàn)在可以到“主目錄”的標(biāo)簽里 選擇要映射的具體目錄了,可以是本機(jī)器或本網(wǎng)機(jī)器上的路徑,也可是遠(yuǎn)端站點(diǎn)的 URL 。
IIS 配置起來直觀,但如果是有大量的記錄就不適合了,而且也不適合在線申請(qǐng)。
二、 Apache (新版本已經(jīng)開始支持 NT ,你可以到 http://www.apache.org 去得到最新的版本,并且?guī)г创a,有 興趣可以自己開發(fā)些新功能)