多个本地主机:IIS中有80个绑定站点?

多个本地主机:IIS中有80个绑定站点?,iis,iis-7,configuration,dns,localhost,Iis,Iis 7,Configuration,Dns,Localhost,(您可以直接跳到问题,但上下文在背景部分。) 技术背景 视窗8 IIS 7 背景: 和其他几个人一样,我使用IIS,有时需要设置站点的本地版本。现在,在设置不同的站点时,通常只为它们分配不同的端口,这样它们就不会重叠。因此,您可以将站点A设置为端口80,站点B设置为端口81,以此类推 现在,我想设置绑定,这样我就可以在端口80下拥有多个站点,并且通过头主机区别,我可以同时为这些站点提供有意义的URL 执行此操作的一个选项是向主机文件添加条目,例如: 127.0.0.1 siteA.com 1

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

技术背景

  • 视窗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
我希望我能够浏览并获取我的网站

然而,当我浏览时,我的请求似乎从未到达IIS,地址也没有解析

为什么不起作用


更新:

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

然而,这是行不通的:


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

您的主机文件需要与您的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


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

我想我明白您的意思了。所以您试图浏览到
siteA.localhost
,而不在hosts文件中添加条目?@chuex非常感谢。通过您的回答和其他一些发现,我现在明白了为什么这不起作用,并且我试图通过这种方式实现的目标是不可能的。主机文件的可能副本是反向的,IP地址是第一位的。@RenniePet谢谢!我可能在写问题的时候写错了。我刚刚修复了它。因为“localhost”是一个已知的地址——有没有办法避免将条目添加到主机文件中?我试图将“localhost”视为TLD或完整域。@Alpha-否,因为DNS不能假定“siteA.localhost”和“localhost”是同一地址。它们可能是不同的地址。您的主机文件是向后的,IP地址排在第一位。谢谢@RenniePet,已修复。