我有网站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
在建立连接的客户端代码中正确传递标头。然后一切都应该正常工作。