IIS如何确定要为localhost命中的网站

bec*_*hbd 1 iis iis-6

我有一个使用IIS 6的开发机器设置.我在不同的IP地址上配置了3个网站:

默认(全部未分配)WS1(192.168.1.250)WS2(192.168.1.249)

我想知道当我在URL中指定localhost时,IIS如何确定要访问哪个站点?这是可配置的吗?如果是这样,我该怎么做呢?

Mal*_*don 9

当IIS响应HTTP请求时,使用3条信息来确定应该使用哪个网站来构建响应.

  1. IP地址 - 浏览器使用地址栏中的名称执行DNS查询并获取主机的实际IP地址.它将http请求发送到该IP地址.
  2. 端口 - 默认情况下,非SSL请求为80,SSL为443.
  3. 主机头 - http请求的一部分是主机头.此主机标头与用户请求的地址的域名匹配,包括子域名或主机名.例如:www.foo.com secure.foo.com server1.foo.com subdomain.foo.com server2.subdomain.foo.com

基于您的问题的假设:

1 - 您的机器分配了3个IP地址:

  • 192.168.1.250 - 指定为网站1,名称为WS1
  • 192.168.1.249 - 指定为web stie 2,名称为WS2
  • WS1和WS2都在IIS中定义并映射到适当的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响应请求,请禁用默认站点并将IP地址设置更改(All Unassigned)为WS1或WS2.