首頁  >  文章  >  一個ip位址可以對應多個網域嗎

一個ip位址可以對應多個網域嗎

angryTom
angryTom原創
2019-07-22 13:20:1345482瀏覽

一個ip位址可以對應多個網域嗎

推薦教學:linux教學

首先,一個IP綁定多個網域是很常見的事情,租用的虛擬主機大多數都是多個主機共享同一個IP,區分具體存取的是哪個主機要從兩個方面實現:

1、客戶端如何區別不同網站

客戶端在請求時,會在HTTP請求的時候包含要請求的特定主機名稱,例如訪問Google的請求通過抓包分析內容是這樣的:

GET / HTTP/1.1
Host: www.google.com

整個請求會被發送到伺服器上,其中有Host字段標識你要請求的網站域名是什麼,即使訪問的是同一個IP地址,由於Host字段不同,所以伺服器軟體有辦法區分具體造訪的是哪個網站。

關於Host欄位的具體定義,可以閱讀RFC-2616的第14.23節:http://www.rfc-editor.org/rfc/rfc2616.txt

以下是節錄(注意加粗的部份):

14.23 Host

  The Host request-header field specifies the Internet host and port
  number of the resource being requested, as obtained from the original





一個ip位址可以對應多個網域嗎

################################################################## #   URI given by the user or referring resource (generally an HTTP URL,###   as described in section 3.2.2). The Host field value MUST represent###   the dgiing hority of the autgin unhority ungate the#. #   original URL. This allows the origin server or gateway to###   differentiate between internally-ambiguous URLs, such as the root "/"###   ###URL of a server for multiple hosts on aple hosts on a . ########另外,RFC-2616並非HTTP協定的最新規範,具體的規範請參考RFC-2616的描述連結:Information on RFC 2616#############2、伺服器端如何設定############如果伺服器使用Apache,那麼在Apache的設定檔中加入VirtualHost即可新增虛擬主機:###
<VirtualHost 10.0.0.1>
ServerAdmin admin@admin
DocumentRoot "D:/website1"
ServerName http://myhost1.com
DirectoryIndex index.php
</VirtualHost>
<VirtualHost 10.0.0.1>
ServerAdmin admin@admin
DocumentRoot "D:/website2"
ServerName http://myhost2.com
DirectoryIndex index.php
</VirtualHost>
###以上就定義了兩個網域http://myhost1.com和http://myhost2.com,分別在不同的根目錄,透過這樣的設定Apache如果收到http://myhost1.com的請求,那麼就到d:/website1裡尋找對應的頁面,如果是http://myhost2.com的請求,那就到d:/website2裡尋找對應的頁面。 ######通常Apache還有一個預設網站,這個網站是可以使用IP位址存取的,如果將這個網站設定為無效,那麼這個主機就無法透過IP位址直接存取HTTP資源。 ############對IIS來說,IIS能使用同一個IP綁定多個站點,具體可以參考下圖:############### ######在預設網站->屬性->網站->進階中,新增不同的網域即可。因為我的IIS版本較低,本身無法支援綁定多個網站,高版本的IIS中,可以配置多個網站,每個網站綁定不同的域名,即可實現訪問時的區分。 ######如果伺服器沒設定預設網站,那麼IP位址也無法直接存取主機。 ######所以,如果你直接透過IP位址造訪網站,會遇到兩種情況:##########1、伺服器設定了預設網站,或是使用IP作為主機名稱去匹配請求的Host字段,那麼你透過IP訪問的就是這個網站;############2、伺服器沒有設定預設網站,或者預設網站被禁止,那麼你透過IP無法打開任何東,通常遇到的是404錯誤(找不到頁面),在我使用過的幾個虛擬主機服務商那,遇到的都是類似的錯誤。 ############另外,不管是IIS或Apache或其它類型的網站伺服器軟體,不只支援多域名,也支援多IP,也就是一個伺服器同時有多個網域和多個IP,互相之間是互不干擾的。 ######

以上是一個ip位址可以對應多個網域嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn