iis - IIS 如何确定要访问 localhost 的网站

标签 iis iis-6

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

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

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

最佳答案

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

  • IP 地址 - 浏览器使用地址栏中的名称执行 DNS 查询并获取主机的实际 IP 地址。它将 http 请求发送到该 IP 地址。
  • 端口 - 默认情况下,非 SSL 请求为 80,SSL 为 443。
  • 主机头 - 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 - 您分配给您的机器的第三个 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)

    关于iis - IIS 如何确定要访问 localhost 的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028159/

    相关文章:

    .net - DoD CAC 身份验证 - .NET C#、Windows Server 2008 R2、IIS 7.5 的客户端证书问题

    c# - 从 IIS 运行应用程序 (asp.net) 时无法创建 excel 文件

    IIS 6 到 IIS 7.5 导出 SSL 证书

    javascript - IIS为js文件返回text/html,为什么?

    iis - 在 IIS 下的 HTTPS 网站中允许来自外部网站的非 ssl 内容

    .net - 我可以在不附加VS调试器的情况下从CLR异常获取堆栈跟踪信息吗?

    asp.net - 奇怪的 IIS Windows 身份验证行为

    c# - IE8 丢失 session 而 Firefox 工作正常

    node.js - iisnode 的权限和请求

    web-services - Wcf 服务引发异常 : Could not establish trust relationship for the SSL/TLS secure channel with authority