1.1 基於IP地址的虛擬主機方式 (非主流)
這種方式下,不同的主機名解析到不同的IP地址,提供虛擬主機服務的機器上同時設置有這些IP地址。服務器根據用戶請求的目的IP地址來判定用戶請求的是哪個虛擬主機的服務,從而進一步的處理。
缺點:基於IP地址的虛擬主機方式需要在提供虛擬主機服務的機器上設立多個IP地址,既浪費了IP地址,又限制了一臺機器所能容納的虛擬主機數目。因此這種方式越來越少使用。但是,這種方式是早期使用的HTTP 1.0協議唯一支持的虛擬主機方式。
1.2 基於主機名的虛擬主機方式 (主流)
由於基於IP地址的虛擬主機方式有如上的缺點,HTTP 1.1協議中增加了對基於主機名的虛擬主機的支持。具體說,當客戶程序向WWW服務器發出請求時,客戶想要訪問的主機名也通過請求頭中的“Host:”語句傳遞給WWW服務器。比如,[url]www.company1.com[/url], [url]www.company2.com[/url] 都對應於同一個IP地址(即由同一臺機器來給這兩個虛擬域名提供服務),客戶程序要訪問[url]http://www.company1.com/index.html[/url]時,發出的請求頭中包含有如下的內容:
GET /index.html HTTP/1.1
Host: [url]www.company1.com[/url]
…..
WWW服務器程序接收到這個請求後,可以通過檢查“Host:”語句,來判定客戶程序請求是哪個虛擬主機的服務,然後再進一步的處理。
優點:提供虛擬主機服務的機器上只要設置一個IP地址,理論上就可以給無數多個虛擬域名提供服務,佔用資源少,管理方便。目前基本上都是使用這種方式來提供虛擬主機服務。
缺點:在早期的HTTP 1.0版本下不能使用。實際上現在使用的瀏覽器基本上都支持基於主機名的虛擬主機方式
首先,您在IE瀏覽器輸入您的網站地址,也就是您的域名。
此時,數據包就會發送到名稱解析服務器(這個是互聯網上的公用服務器),得到您的域名解析後的IP地址。
然後,數據包就會帶着您的域名一起前往您的主機IP地址
最後,到達您的主機IP地址,把域名交給主機中的一個叫做IIS的程序,告訴他要訪問這個域名的網站內容,IIS程序就會把內容返回到您的IE瀏覽器界面裏,您的網站就呈現出來了。此時,數據包就會發送到名稱解析服務器(這個是互聯網上的公用服務器),得到您的域名解析後的IP地址。
然後,數據包就會帶着您的域名一起前往您的主機IP地址
[url]http://tieba.baidu.com/f?kz=107509364[/url]
實際配置:
第一:
配置DNS把各人網站指向這臺wed服務器,192.168.1.102是WED服務器的IP地址
第二:
在WED服務器建立相應的網站目錄
linux.eo.com 對應目錄 /var/www/html
wangzhan1.eo.com 對應目錄 /var/www/wangzhan1 (網站1)
wangzhan2.eo.com 對應目錄 /var/www/wangzhan2 (網站2)
mkdir /var/www/wangzhan1
mkdir /var/www/wangzhan2
第三:
建立好後配置 vim /var/httpd/conf.d/virtual.conf (新建立一個文件)
在這個文件中加入下面的命令:
namevirtualhost 192.168.1.102:80 (定義本機的80端口所指定的虛擬主機)
#先針對多出來的可瀏覽的目錄進行權限方面的規定
<directory "/var/www/wangzhan1">
options followsymlinks
allowoverride none
order allow,deny
allow from all
</directory>
<directory "/var/www/wangzhan2">
options followsymlinks
allowoverride none
order allow,deny
allow from all
</directory>
#針對三臺主機的DocumentRoot進行設置(網站主目錄)
<virtualhost 192.168.1.102:80> #本機主機名稱也要一同寫進來
servername linux.eo.com
documentroot /var/www/html
</virtualhost>
<virtualhost 192.168.1.102:80>
servername wangzhang1.eo.com
documentroot /var/www/wangzhan1
customlog /var/log/httpd/wangzhan1.access-log combined (合併)
</virtualhost>
<virtualhost 192.168.1.102:80>
servername wangzhang2.eo.com
documentroot /var/www/wangzhan2
</virtualhost>
apachect1 restart 重啓apache服務就OK