我有一个使用IIS 6的开发机器设置。我在不同的IP地址上配置了3个网站:
默认(全部未分配) WS1(192.168.1.250) WS2(192.168.1.249)
我想知道当我在URL中指定localhost时,IIS如何确定要访问哪个站点?这是可配置的吗?如果是这样,我该怎么做呢?
答案 0 :(得分:9)
当IIS响应HTTP请求时,使用3条信息来确定应该使用哪个网站来构建响应。
www.foo.com secure.foo.com server1.foo.com subdomain.foo.com server2.subdomain.foo.com
等基于您的问题的假设:
1 - 您的机器分配了3个IP地址:
2 - 您的计算机分配了第3个IP地址,即原始IP地址。 (这可能是也可能不是这样,我假设它是这样的,因为这是大多数人在为网站分配IP时所做的事情。)
3 - IIS中的默认网站的IP地址设置为:(All Unassigned)
。
4 - 您尚未在IIS配置中指定任何主机标头或端口。
因此,在您的计算机上运行浏览器时,键入:http://localhost
(没有端口号),IIS会做什么?
根据之前的回复,浏览器会将localhost转换为127.0.0.1作为IP地址,并构造该IP地址的HTTP请求。主机标头为localhost
。
在这种情况下,IIS将看到WS1和WS2都没有匹配的IP地址,因此默认站点将用于处理请求。
如果您希望WS1或WS2响应请求,请禁用默认站点并将WS1或WS2的IP地址设置更改为(All Unassigned)
。
答案 1 :(得分:3)
localhost
通常表示127.0.0.1
,这是一个名为Loopback Address
的特殊IP地址,它始终定义为“当前计算机”。它与Web服务器的外部IP地址不同:如果IIS期望连接到IP地址192.168.1.250
,则与127.0.0.1
的连接将不匹配。
localhost
可在Hosts
文件中配置(通常位于C:\Windows\System32\Drivers\Etc\Hosts
)。但是不要重新配置它,因为如果你重新配置它,可能有很多程序可能会破坏。
相反,您可以在Hosts
文件中设置备用域。例如,你可以做
192.168.1.250 my.internal.website.com
192.168.1.249 your.internal.website.org
然后如果你浏览了其中一个域,IIS会看到正确的IP地址并显示你想要的网站。
答案 2 :(得分:1)
localhost与127.0.0.1相同,所以我认为它属于All Unassigned,因为它与你的其他任何一个IP地址都不匹配。
答案 3 :(得分:-1)
“localhost”映射到
中的127.0.0.1C:[你的Windows目录] \ system32 \ drivers \ etc \ hosts
没有扩展名,但主机是一个文本文件,您可以在所选的文本编辑器中进行编辑。
答案 4 :(得分:-1)
这是一个简单的解决方法:
使用协议:http,端口:80向该站点添加绑定,并通过IIS客户端添加主机名。 inetmgr.exe。
来自http://tipila.com/tips/93/configure-a-web-site-to-respond-to-localhost-addresses-in-iis