我有網站http://waycoolblog.com,但我無法透過其IP位址存取它 http://74.220.219.56/
為什麼會發生這種情況?
我的主要問題是這是否是一個普遍現象。在我的應用程式中,我嘗試自行解析網站名稱,並嘗試使用 IP 位址而不是網站名稱進行連線。
我想確保它能正常工作。
答案1
不知道你運行在哪台伺服器上,但是在IIS中,有主機頭映射功能。
這允許多個網站從同一 IP 位址運行,但要求提供網站的網域名稱作為「Host」http 請求標頭。伺服器查詢此標頭並提供來自適當網站的內容。
透過 IP 位址傳入的任何請求都不會使用「waycoolblog.com」作為主機標頭。如果您的伺服器託管多個網站,則您的伺服器很可能不是「預設」網站,因此該伺服器將無法為您的網站提供服務。
答案2
也許您的網站所在的伺服器正在使用基於主機名稱的虛擬主機?
答案3
主持人姓名基於虛擬主機的虛擬主機非常普遍。如果沒有它,IP位址的短缺將會更加嚴重。怎麼運作的? HTTP/1.1 用戶端將Host
標頭作為其請求的一部分傳遞,該標頭表明哪個主機感興趣(waycoolblog.com
在您的情況下),HTTP 伺服器根據該標頭確定要提供的內容集。這使得同一 IP 位址可以為許多不同主機名稱的內容提供服務,從而使託管成本更加便宜。它也是每個生產級標準 Web 伺服器軟體系統的功能。 Apache 做到了這一點,IIS 也做到了這一點,我所知道的所有其他都不是研究玩具。
解決方法是Host
在建立連線的客戶端程式碼中正確傳遞標頭。那麼一切都應該Just Work TM。