【问题标题】:Multiple localhost:80-bound sites in IIS?IIS 中有多个 localhost:80 绑定站点?
【发布时间】:2013-05-26 05:04:35
【问题描述】:

(您可以直接跳到问题,但上下文在背景部分。)

技术背景

  • Windows 8
  • IIS 7

背景:

和其他几个人一样,我使用 IIS,有时我需要设置站点的本地版本。现在,在设置不同的站点时,为它们分配不同的端口是很常见的,这样它们就不会重叠。所以你可以让你的站点 A 在端口 80,你的站点 B 在端口 81 等等。

现在,我想设置绑定,以便能够在端口 80 下拥有多个站点,并且通过标头主机区别,我可以同时为这些站点提供有意义的 URL。

执行此操作的一个选项是向您的主机文件添加条目,例如:

127.0.0.1 siteA.com
127.0.0.1 siteB.com

有了这个,您应该能够浏览到 siteA.com 或 siteB.com 并在本地运行。

但我想再进一步,因为 localhost 已经设置为匹配 127.0.0.1,所以:

问题:

我已将 IIS 绑定设置为:

site    host header       port
siteA   siteA.localhost   80
siteB   siteB.localhost   80

我希望我能够浏览到 http://siteA.localhost/ 和 http://siteB.localhost/ 并获取我的网站。

但是,当我浏览时,我的请求似乎从未到达 IIS,并且地址没有解析。

为什么这不起作用?


更新:

我选择了 chue x 的答案,因为他解释了为什么这不起作用。对于那些可能遵循我相同路径的人,您可能会想“好吧,我可以在 hosts 文件中添加 *.localhost 并且应该完成。”甚至切换到*.local 或*.localdev.com 或类似的东西。

但是,这不起作用:Wildcards in a Windows hosts file

正如 chue x 所指出的,我们现在唯一的方法是继续向主机文件添加条目,或者按照他们在链接问题中的解释,使用另一个 DNS 服务器。

【问题讨论】:

  • 我想我明白你在说什么。所以你试图浏览到siteA.localhost 而不在主机文件中添加条目?
  • @chuex 非常感谢。有了您的回答和其他一些发现,我现在明白了为什么这不起作用,并且我试图实现的目标无法以这种方式实现。
  • 你的hosts文件倒了,IP地址在前。
  • @RenniePet 谢谢!我可能在写问题的时候写错了。我刚刚修好了。

标签: iis iis-7 configuration dns localhost


【解决方案1】:

您的主机文件需要与您的 IIS 绑定匹配,该绑定必须与 url 浏览器匹配。

所以如果你的主机文件看起来像:

127.0.0.1 siteA.localhost
127.0.0.1 siteB.localhost

您的 IIS 绑定需要:

site    host header       port
siteA   siteA.localhost   80
siteB   siteB.localhost   80

最后,从本地机器,你需要浏览到:

http://siteA.localhost

编辑 - 如果您尝试在不添加站点 A 和站点 B 的主机条目的情况下执行上述操作,它将无法正常工作。 DNS 不会找到它。例如,如果您尝试浏览“foo.stackoverflow.com”会发生什么 - 即使“stackoverflow.com”是已知地址,请求也会失败。

【讨论】:

  • 由于“localhost”是一个已知地址——有什么办法可以避免将条目添加到主机文件中?我正在尝试将“localhost”视为 TLD 或完整域。
  • @Alpha - 否,因为 DNS 不能假定“siteA.localhost”和“localhost”是同一个地址。它们可能是不同的地址。
  • 你的hosts文件倒了,IP地址在前。
  • 感谢@RenniePet,已修复。
猜你喜欢
  • 2010-09-18
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
相关资源
最近更新 更多