IIS中有多个localhost:80个绑定的站点?

时间:2013-05-30 14:48:53

标签: iis iis-7 configuration dns localhost

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

技术背景

  • 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的答案,因为他解释了为什么这不起作用。对于那些可能遵循相同路径的人,您可能会认为“好吧,我可以在主机文件中添加*.localhost,并且应该完成。”甚至可以切换到*.local*.localdev.com或类似的东西。

然而,这不起作用:Wildcards in a Windows hosts file

正如chue x指出的那样,我们现在唯一的方法是不断向hosts文件添加条目,或者在链接的问题中解释它们如何使用其他DNS服务器。

1 个答案:

答案 0 :(得分:19)

您的主机文件需要与您的IIS绑定匹配,这些绑定必须与网址浏览器匹配。

因此,如果您的主机文件如下:

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

编辑 - 如果您尝试在不添加siteA和siteB的hosts条目的情况下执行上述操作,则无法执行此操作。 DNS无法找到它。例如,如果您尝试浏览到“foo.stackoverflow.com”会发生什么 - 即使“stackoverflow.com”是已知地址,请求也会失败。