Hosting

如何擁有一個 IP 地址和多個網站?

  • November 1, 2020

如果我有一個位於 Internet 上的 IP 地址但有多個 Web 名稱,我如何才能擁有它?例如,當一家託管公司擁有一個共享 IP 但我獲得了無限的域名(以及該框中的其他所有人)。

我在網際網路上有一個盒子,但是當有人輸入不同的 www 時,我想指向另一台擁有不同網站的機器……(它就在它旁邊,只是在一個不同的盒子裡)。這都是子域嗎?謝謝你。

我是託管公司

它是 HTTP 1.1 協議的一部分。

具體來說,HTTP 1.1 協議包含一個名為“host:”的標頭,它指定客戶端嘗試訪問的特定伺服器上的哪個網站。

因此,如果 snoopy.net 和 woodstock.org 都共享 192.0.32.10 並且您的瀏覽器試圖從http://snoopy.net/doghouse 特定的 http 請求中獲取內容,則如下所示:

GET /doghouse HTTP/1.1
Host: snoopy.net

如果所需的 url 是http://woodstock.org/seeds請求看起來像

GET /seeds HTTP/1.1
Host: woodstock.org

在這兩種情況下,您的電腦和伺服器的埠 80 之間都會有一個 tcp 套接字。伺服器會根據 Host 標頭知道從 /var/www/snoopy.net 或 /var/www/woodstock.org/ 獲取內容。

cookie 和其他內容(例如瀏覽器類型和允許的內容)還有其他標頭,但“主機”標頭專門允許 Web 伺服器知道需要哪個虛擬網站。

RFC2616中還有更多內容。

這也是為什麼 https 站點必須**有自己的 IP 地址的原因——ssl 密鑰交換和證書驗證發生在 http 交易之前,因此 http 伺服器不會知道為“woodstock.org”提供證書或“snoopy.net”,當它在 192.0.32.10 的埠 443 上接收到 https 連接時。


編輯

** 在評論中Grawity指出,TLS 規範中有 SSL 擴展,允許伺服器知道使用者試圖訪問哪個網站,並且大多數現代 Web 瀏覽器都有這些擴展,所以must也有點強的。

引用自:https://serverfault.com/questions/106882