虛擬主機原理

虛擬主機

虛擬主機在iis中也叫站點(網站),或應用程序池,是爲了在同一臺物理機器上運行多個不同的網站,提高資源利用率引入的技術。

虛擬域名 主機頭是綁定域名,沒有域名不用設置主機頭,所謂的主機頭的叫法起自IIS中對域名綁定的功能,一般的web服務器一個ip地址的80端口只能正確對應一個網站,處理一個域名的訪問請求。而web服務器在不使用多個ip地址和端口的情況下,如果需要支持多個相對獨立的網站就需要一種機制來分辨同一個ip地址上的不同網站的請求,這就出現了主機頭綁定的方法。簡單的說就是,將不同的網站空間對應不同的域名,以連接請求中的域名字段來分發和應答正確的對應空間的文件執行結果。舉個例子來說,一臺服務器ip地址爲192.168.1.10,有兩個域名和對應的空間在這臺服務器上,使用的都是192.168.1.10的80端口來提供服務。如果只是簡單的將兩個域名A和B的域名記錄解析到這個ip地址,那麼web服務器在收到任何請求時反饋的都會是同一個網站的信息,這顯然達不到要求。接下來我們使用主機頭綁定域名A和B到他們對應的空間文件夾C和D。當含有域名A的web請求信息到達192.168.1.10時,web服務器將執行它對應的空間C中的首頁文件,並返回給客戶端,含有域名B的web請求信息同理,只不過解釋的是空間D的文件。所以在使用主機頭綁定功能後就不能使用ip地址訪問其上的任何網站了,因爲請求信息中不存在域名信息,所以會出錯。

 

虛擬目錄

虛擬目錄對應到URL的名稱 如 http://zhidao.baidu.com/question/ 中question就是一個虛擬目錄

對於一個網站來說包括主目錄(或稱宿主目錄)和虛擬目錄,主目錄設置好後,通過域名或ip地址訪問默認就是訪問主目錄裏面的東西,例如 http://zhidao.baidu.com 訪問的就是主目錄下的index.htm頁面。
虛擬目錄的作用:很多時候,上傳的文件多了,架設服務器當初設定的主目錄所在盤空間往往就不夠了,怎麼辦?這就需要設置虛擬目錄。虛擬目錄就是將其他目錄以映射的方式虛擬到該FTP服務器的主目錄下,這樣,一個FTP服務器的主目錄實質上就可以包括很多不同盤符、不同路徑的目錄,而不會受到所在盤空間的限制了。當用戶登錄到主目錄下,還可以根據該賬戶的權限對它進行相應的操作,就像操作主目錄下的子目錄一樣。如果用戶被鎖定在主目錄下,這項功能將允許他們訪問主目錄之外的其它目錄。

主目錄設置的權限如果與虛擬目錄的權限發生衝突,則以主目錄權限爲準。比如主目錄設置的權限爲讀取和寫入,而虛擬目錄的權限只設置爲讀取,則其權限將會被主目錄權限覆蓋掉,自動擁有寫入權限。

IIS 支持虛擬目錄,通過在“服務器屬性”對話框中的“目錄”標籤可以管理虛擬目錄。建立虛擬目錄對於管理 WEB 站點具有非常重要的意義。首先,虛擬目錄隱藏了有關站點目錄結構的重要信息。因爲在瀏覽器中,客戶通過選擇“查看源代碼”,很容易就能獲取頁面的文件路徑信息,如果在 WEB 頁中使用物理路徑,將暴露有關站點目錄的重要信息,這容易導致系統受到攻擊。其次,只要兩臺機器具有相同的虛擬目錄,你就可以在不對頁面代碼做任何改動的情況下,將 WEB 頁面從一臺機器上移到另一臺機器。還有就是,當你將 WEB 頁面放置於虛擬目錄下後,你可以對目錄設置不同的屬性,如:Read、Excute、Script。讀訪問表示將目錄內容從 IIS 傳遞到瀏覽器。而執行訪問則可以使在該目錄內執行可執行的文件。當你需要使用 ASP 時,就必須將你存放 .asp 文件的目錄設置爲“Excute(執行)”。作者建議大家在設置 WEB 站點時,將 HTML 文件同 ASP 文件分開放置在不同的目錄下,然後將 HTML 子目錄設置爲“讀”,將 ASP 子目錄設置爲“執行”,這不僅方便了對 WEB 的管理,而且最重要的提高了 ASP 程序的安全性,防止了程序內容被客戶所訪問。因爲在今年 7 月底的時候 IIS 被一些網絡高手發現了一個可怕的 bug,那就是,當你在一個站點的 .asp 文件後加上 ::$DATA 後,客戶將能在瀏覽器中看到該 .asp 文件的所有源代碼,這對於一個站點來說是非常可怕的。當然微軟已經針對這個 bug,編寫了補丁,但是爲了徹底杜絕這種可能性的發生,作者還一建議大家不要將 .asp 所在的目錄設置爲可讀。

 

父目錄

【轉載】我要做個項目,需要通過從localhost中的login.asp中登陸進入。可是當輸入正確的登錄名和密碼後點擊確定計算機卻沒有反應,後來將編輯權限中的啓用父路徑改爲ture後就能用了。如果你不是win7旗艦可能打開方法就不一樣了你可以試一下這個方法:

打開IIS管理器,找到Web目錄,右鍵“屬性”在“主目錄”選項卡下點擊“配置”打開“應用程序配置” 窗 口,單擊“選項”標籤,勾選“應用程序配置”下的“啓用IIS父路徑”即可。

爲安全考慮,IIS6.0版本中出現了一個父路徑功能,初始安裝時是沒有打開的,如果你的網站程序使用了父路徑,如../conn.asp這樣的,..表示上層目錄,就一定要開啓父路徑,否則系統不能正常識別..父路徑,網頁就無法正常顯示。
例如:
       <!--#include file="../conn.asp"-->
這條語句,當 IIS 啓用父路徑時,這條語句可以正常使用,而當 IIS 停用父路徑時,這條語句無法使用。

還有編輯權限中的將錯誤發送到瀏覽器,也要改爲ture,這樣有利於知道自己的錯誤及時改正錯誤。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章