为什么我无法通过其 IP 地址访问我的网站。但只能通过站点名称访问。这种情况常见吗?

为什么我无法通过其 IP 地址访问我的网站。但只能通过站点名称访问。这种情况常见吗?

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

相关内容