當然主要有技術含量的是點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程式時,可能會帶來一些嚴重的安全問題。設定這種虛擬機器主機時,只要為每一個虛擬機器主機設定類似如下的資訊即可:
<VirtualHost www.ghq1.com>
DocumentRoot /www/ghq1
…
</VirrualHost>
優點:佔用系統資源比上一種方式少。
缺點:安全性低,每個虛擬機器主機仍然需要佔用一個IP地址。
例如伺服器一個網卡上綁定有兩個IP地址(172.16.3.40和 172.16.3.50)分別對應網域名稱 www.ghq1.com和www.ghq2.org的服務,配置如下:
伺服器配置(apache的設定檔httpd.conf)
Listen 80
<VirtualHost 172.16.3.40>
DocumentRoot /www/ghq1
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.50>
DocumentRoot /www/ghq2
ServerName www.ghq2.org
</VirtualHost>
配置簡單說明:“Listen”預設httpd服務會監控第80號通訊連接埠, “Listen”選項讓使用者自行指定apache 伺服器監控的IP地址或通訊連接埠。
“DocumentRoot”:指定apache 伺服器存放網頁的根目錄;“ServerName”:允許使用者自行設定主機名稱,這個名稱將被送到遠端連線程式,以取代安裝apache 伺服器主機的真實名稱。<VirtualHost IP >和</VirtualHost>構成虛擬機器主機的文法結構,其中的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
<VirtualHost 172.16.3.40:80>
DocumentRoot /www/ghq1-80
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.40:8080>
DocumentRoot /www/ghq1-8080
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.50:80>
DocumentRoot /www/ghq2-80
ServerName www.ghq1.org
</VirtualHost>
<VirtualHost 172.16.3.50:8080>
DocumentRoot /www/ghq2-8080
ServerName www.ghq2.org
</VirtualHost>
因此,建立虛擬機器主機,我們要做好不同的IP對應的網域名稱解析工作,建立相應的目錄(如/www/ghq1),將相應的首頁內容存放在相應的目錄中即可。