如果我在 IIS 中设置一个具有主机名(local.somewebsite.com)(将其添加到 HOSTS 文件)的网站并指定一个 IP 地址(127.0.0.1),则可以通过主机名访问该网站,但通过 IP 访问它似乎会加载默认网站并显示未找到消息。
这是预期的行为吗?解决方法似乎是将默认网站指向网站的文件夹。
出现这个问题的原因是我们在服务器场中有许多网站,而一个特定的操作是调用其他服务器并清除每个服务器的缓存,因此可以通过主机名和 IP 访问网站。
答案1
这是预期的行为。
绑定的最具体组合是“采用”的。如果您在绑定中指定主机标头名称,则请求必须包含主机名(通过 HTTP“Host:”标头)。
如果您打算通过 IP 地址访问网站,那么您将需要在该网站上进行绑定,不指定主机头名称并选择适当的监听地址(“全部未分配”或特定 IP,取决于您如何将计算机上的其他 IP 分配给网站)。
主机标头名称功能旨在允许您在同一个 IP 地址和端口上托管多个站点。IIS 根据 HTTP“Host:”标头选择适当的站点来满足传入请求。
答案2
在 IIS 中,您应该仅通过 IP 进行绑定,主机名是可以从 DNS 中更改的内容,因此您可以将域“somewebsite.com”的 A 记录“本地”指向您选择的 IP。应该可以。