WEB服務器的虛擬主機設置

一、IIS虛擬主機的設置方法
        IIS(以及Apache等等其他Web  Server)都可以做到“虛擬主機”(注意不是“虛擬目錄”),也就是一臺主機可以對應多個Web Site(“網站”)。很多網絡服務商(IDC)就是使用這樣的技術在一臺主機上放置多個網站。虛擬主機實現方法有:

    1。同一IPport(“端口”),不同Host Header(“主機頭”);

    2。不同port

    3。不同IP

   

23是對1的補充,也就是說在“不同端口”,“不同IP”下,已經可以實現“一臺主機對應多個網站”了,同時結合使用“不同主機頭”,又可以實現多個虛擬主機了。

     假設要建立aaa.combbb.net兩個網站,分別在D:\aaa.comD:\bbb.net兩個目錄下,以上方法的原理和具體做法如下:

1。同一IPport(“端口”),不同Host Header(“主機頭”):這是最常見的做法。

IIS支持通過Host Header來區分不同的站點請求,也就是說,客戶端的瀏覽器輸入[url]http://aaa.com[/url]或者[url]http://bbb.net[/url],請求送交IIS,也就是http報文裏面就會包含了host header,它的內容就包括客戶輸入的內容(aaa.com or bbb.net),IIS讀取host header,就找到該虛擬站點相應的home diretory(主目錄),根據ducument(默認首文檔)的名字尋找相應的文件,把它傳遞給客戶端。這樣,就通過不同的host header實現了“虛擬主機”的功能。

    具體做法是:

    IIS裏面,添加兩個“站點”,描述隨便寫,主機頭分別填寫 [url]www.aaa.com[/url][url]www.bbb.net[/url],分別對應不同的主目錄,端口最好就是默認的80IP就是該主機對外的IP;做好要以後檢查該站點屬性裏面的主機頭和端口是否正確。這種方法也有一點侷限性,就是IE3.0以下瀏覽器不支持host header

2。不同port(“端口”):

     這種很簡單。建立方法:建立站點,不改變IP,改變端口。

缺點:瀏覽者不知道某站點的端口,就無法訪問該站點。

3。不同IP

    假設本機網卡有多個IP,或者有多個網卡(也就是有多個IP,可以在建立站點以後,選擇不同的IP來實現不同虛擬主機。

    缺點:管理不方便,一般正規服務的服務器也不會有多個合法IP,而內部IP只能在內部使用。

以上方法,不管怎麼作,都需要一個前提,就是DNS Server事先已經把域名aaa.combbb.net正向搜索指向該主機的合法IP了。否則正確建立了虛擬主機也不能被瀏覽。如果是在本地作測試的話,本機必須配置DNS Server服務,(Win2k Professional/WinNT Workstation都不能安裝DNS);或者局域網內某臺Server上安裝並配置DNS,然後測試機的網卡TCP/IP需設置DNS
 
二、Apache虛擬主機的兩種方案
簡介:這裏說的虛擬主機是指在一臺機器上僅運行一個httpd後臺程序
支持多個Apache服務器,如在公司財務部門有一臺web服務器,名爲
account.yourdomain.com,同時又想爲sales部門建立網站,網站內容也
放在該機器上,通過sales.yourdomain.com訪問,這就要用到虛擬主機
設置。
1、基於IP的虛擬主機
這種方式需要在機器上設置IP別名,象上面的例子,在一臺機器的
網卡上綁定多個IP地址去服務多個虛擬主機。
  若該機器的IP地址爲192.168.11.2(account.yourdomain.com),首先
你要設置IP別名(假設用192.168.11.4作爲其別名IP)。加下面的行到
/etc/rc.d/rc.local,確保每次啓動後自動運行。

#/sbin/ifconfig eth0:0 192.168.11.4 netmask 255.255.255.0 broadcast 192.168.11.255 up
#/sbin/route add -host 192.168.11.4 eth0:0

然後你需要設置/etd/httpd/conf/httpd.conf文件:

<VirtualHost 192.168.11.4>
ServerAdmin [email][email protected][/email]
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
</VirtualHost>

然後分別創建目錄
/home/httpd/sales.yourdomain.com,
/var/log/httpd/sales.yourdomain.com
,放相應的網站內容到目錄/home/httpd/sales.yourdomain.com下即可,並確保
你內部的DNS指定sales.yourdomain.com的A記錄到IP地址192.168.11.4 。

注:這種基於IP的虛擬主機有一個缺點,就是你需要更多的IP地址去服務各自的
虛擬主機,如果你僅僅有一個IP地址,那麼你將可以考慮用基於名字的虛擬主機
方案。
2、基於名字的虛擬主機:
它的優勢就是不需要更多的IP地址,容易配置,不需要其它軟硬件,現代的
瀏覽器大多都支持這種方式。與基於IP的虛擬主機一樣,你需要編輯文件
/etc/httpd/conf/httpd.conf

NameVirtualHost 192.168.11.2

<VirtualHost 192.168.11.2>
ServerAdmin [email][email protected][/email]
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
</VirtualHost>

<VirtualHost 192.168.11.2>
ServerAdmin [email][email protected][/email]
DocumentRoot /home/httpd/hr.yourdomain.com
ServerName hr.yourdomain.com
ErrorLog /var/log/httpd/hr.yourdomain.com/error_log
TransferLog /var/log/hr.yourdomain.com/access_log
</VirtualHost>

注: 你需要加NameVirtualHost 指示在最前面,下面依次爲各個虛擬主機,
爲了讓它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS都指向IP地址192.168.11.2
上面的兩種都將工作,如果是在外部網段,在互聯網上提供WWW服務,你可能
沒有足夠的真實IP地址來支持多個虛擬主機,便可用基於名字的虛擬主機方案,
若是在內部網段上,你有較多的內部保留IP地址,將沒有太大的區別。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章