當然主要有技術含量的是點DNS的解析,我正給我們公司負責,先查資料的說...‘
我們通常所說的虛擬機器主機技術就是將一台(或者一組)伺服器的資源(系統資源、網路頻寬、儲存空間等)按照一定的比例分割成若干台相對獨立的“小主機”的技術。每一台這樣的“小主機”在功能上都可以實現WWW、FTP、Mail等基本的Internet服務,就像使用獨立的主機一樣。
目前網站伺服器的虛擬機器主機平台使用以開放的Apache為最多,其次是微軟的Windows IIS。Apache具有跨平台(FreeBSD/Linux/Windows/Solaris/Other UNIX)、易於維護與最佳安全性等優點。
Apache是率先支援基於IP虛擬機器主機的伺服器之一。 Apache 1.1及其更新版本同時支援基於IP和基於主機名稱的虛擬機器主機,不同的虛擬機器主機有時會被稱為基於主機(host-based) 或非IP虛擬機器主機(non-IP virtual hosts)。
用Apache設定虛擬機器主機服務通常可以採用兩種方案:基於IP地址的虛擬機器主機和基於主機名稱字的虛擬機器主機,下面我們分別介紹一下它們的實現方法以及優缺點。以便大家在具體的應用中能夠選擇最合適的實現方法。
一、Apache實現基於IP地址的虛擬機器主機(每個網站擁有一個獨立IP地址)
使用這種虛擬機器主機方式,首先要在伺服器上為每個虛擬機器主機單獨設定一個IP地址。這些IP地址可以通過增加多個網卡或者在一個網卡上設立多個IP地址來完成。有了多個IP地址後,可以採用以下兩種方式之一來設定Apache。
1、為每個虛擬機器主機運行一份Apache
採用這種方式,每一份Apache程式可以以單獨的使用者運行,因此各個虛擬機器主機之間互不影響。設定這種虛擬機器主機時,只要為每一份Apache設定一套設定檔就可以了,唯一需要注意的是:必須使用“Listen”語句,強制每一份Apache 僅僅在屬於“自己”的IP地址上接收服務要求。
優點:各個虛擬機器主機之間互不干擾,安全性高。
缺點:佔用系統資源較多。
2、多個虛擬機器主機共用同一份Apache
採用這種方式,各個虛擬機器主機共用同一份Apache,因此各個虛擬機器主機之間有一定的影響,尤其是執行CGI程式時,可能會帶來一些嚴重的安全問題。設定這種虛擬機器主機時,只要為每一個虛擬機器主機設定類似如下的資訊即可:
DocumentRoot /www/ghq1
…
優點:佔用系統資源比上一種方式少。
缺點:安全性低,每個虛擬機器主機仍然需要佔用一個IP地址。
例如伺服器一個網卡上綁定有兩個IP地址(172.16.3.40和 172.16.3.50)分別對應網域名稱 www.ghq1.com和www.ghq2.org的服務,配置如下:
伺服器配置(apache的設定檔httpd.conf)
Listen 80
DocumentRoot /www/ghq1
ServerName www.ghq1.com
DocumentRoot /www/ghq2
ServerName www.ghq2.org
配置簡單說明:“Listen”預設httpd服務會監控第80號通訊連接埠, “Listen”選項讓使用者自行指定apache 伺服器監控的IP地址或通訊連接埠。
“DocumentRoot”:指定apache 伺服器存放網頁的根目錄;“ServerName”:允許使用者自行設定主機名稱,這個名稱將被送到遠端連線程式,以取代安裝apache 伺服器主機的真實名稱。和構成虛擬機器主機的文法結構,其中的IP就是我們在伺服器上綁定的不同的IP地址,也可以是IP地址加上通訊連接埠號(見下面的例子)。
如果伺服器有兩個IP地址(172.16.3.40和 172.16.3.50)分別對應網域名稱 www.ghq1.com和www.ghq2.org。對每個網域名稱,我們都希望在80連接埠和8080連接埠發布我們的網站。可以這樣配置:
伺服器配置(apache的設定檔httpd.conf)
Listen 172.16.3.40:80
Listen 172.16.3.40:8080
Listen 172.16.3.50:80
Listen 172.16.3.50:8080
DocumentRoot /www/ghq1-80
ServerName www.ghq1.com
DocumentRoot /www/ghq1-8080
ServerName www.ghq1.com
DocumentRoot /www/ghq2-80
ServerName www.ghq1.org
DocumentRoot /www/ghq2-8080
ServerName www.ghq2.org
因此,建立虛擬機器主機,我們要做好不同的IP對應的網域名稱解析工作,建立相應的目錄(如/www/ghq1),將相應的首頁內容存放在相應的目錄中即可。
二、Apache實現基於主機名稱的虛擬機器主機服務(一個IP地址實現多個網站)
基於主機名稱字的虛擬機器主機服務,是目前虛擬機器主機比較常用的一種方案。因為它不需要更多的IP地址,無須什麼特殊的軟硬體支援。而且現在的瀏覽器大都支援這種虛擬機器主機的實現方法。基於網域名稱的的虛擬機器主機是根據用戶端提交的HTTP頭中的關於主機名稱的部分決定的。使用這種技術,很多虛擬機器主機可以享用同一個IP地址。
基於網域名稱的虛擬機器主機相對比較簡單,因為我們只需要配置DNS伺服器將每個主機名稱映射(CNAMES)到正確的IP地址,然後配置Apache HTTP伺服器,令其辨識不同的主機名稱就可以了。基於網域名稱的伺服器也可以緩解IP地址(IPV4)不足的問題。這種方式下,各個虛擬機器主機共用同一份Apache,因此有CGI程式運行時,安全性也不高。
優點:只要一個IP地址就可以提供大量的虛擬機器主機服務。
缺點:安全性差。維護這些虛擬機器主機時需要更改設定檔,並且需要重新啟動Apache進程才能起作用。因此不適合進行大規模的虛擬機器主機服務。
如果伺服器只有一個IP地址,而在DNS中有很多映射到這個機器。我們想要在這個機器上運行www.ghq1.com和 www.ghq2.org兩個網站。在Apache伺服器的配置中建立一個虛擬機器主機並不會自動在DNS中對主機名稱做相應更新。我們必須自己在DNS中添加網域名稱來指向我們的IP地址。否則別人是無法看到我們的web 網站。
伺服器配置(apache的設定檔httpd.conf)
# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *
DocumentRoot /www/ghq1
ServerName www.ghq1.com
# Other directives here
DocumentRoot /www/ghq2
ServerName www.ghq2.org
# Other directives here
因為*(星號)匹配所有的地址,所以主伺服器不接收任何請求。因為 www.ghq1.com首先出現在設定檔中,所以它擁有最高優先順序,可以認為是預設或首要伺服器。這意味著如果一個接受的請求不能與某個ServerName指令相匹配, 它將會由第一個VirtualHost所伺服。
當我們的IP地址無法確定的時候,使用*是很方便的--比如說, ISP給我們配置的是動態IP地址(如ADSL撥接),而我們有使用了某種動態網域名稱解析系統時。因為*匹配任何IP 位址,所以在這樣的情況下,不論IP地址如何變化,我們都不需要另外進行配置。上述配置就是我們在絕大多數情況下使用基於網域名稱的虛擬機器主機
http://www.bkjia.com/PHPjc/509201.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/509201.htmlTechArticle當然主要有技術含量的是點DNS的解析,我正給我們公司負責,先查資料的說...‘ 我們通常所說的虛擬機器主機技術就是將一台(或者一組)服務...