【问题标题】:IIS Multiple sites bindings and hosts configurationIIS 多站点绑定和主机配置
【发布时间】:2018-12-13 18:39:40
【问题描述】:

我正在尝试将多个网站配置为在运行 IIS 7.5 的同一台服务器上运行。但是,我在从网络上的计算机访问第二个网站时遇到问题,但我不知道正确的配置应该是什么。

默认网站可在本地和远程工作。 IE。如果我在服务器上输入 localhost 那么它会起作用,如果我从另一台计算机输入服务器的 IP 地址,它也会起作用。

它有以下绑定设置:

- IP address: All unassigned 
- Port: 80
- Host name: blank 

但是,第二个网站(称为“testapp”)只能在本地运行。 IE。当我在服务器上时,我可以通过输入它的绑定主机名来访问它,但是当我尝试通过输入“ip address/TestApp/”从另一台计算机访问它时。它返回 404 - 找不到文件或目录错误。

它有以下设置:

- IP address: All unassigned 
- Port: 80
- Host name: testapp

以及hosts文件中的一个条目

- 127.0.0.1     testapp

我知道我可能只是遗漏了一些简单的东西,但我们将不胜感激!

【问题讨论】:

标签: iis binding iis-7.5 hosts


【解决方案1】:

"ip address/TestApp/" 会将流量发送到默认网站(它也会从托管TestApp 的服务器执行此操作)。您需要设置 DNS,以便您的客户端可以使用主机名来解析 IP 或在 每台 连接的计算机上添加主机文件,如果您没有 DNS 服务以使命名绑定按预期工作。

"Under-the-hood" 当浏览器发送 HTTP 请求(即输入 url/点击链接)时,域名在HOST HTTP 标头中发送,IIS 使用此标头来确定哪个发送站点(即绑定)流量。使用 IP 时,您不提供主机名,因此不会发送 HOST 标头,因此 IIS 会将流量路由到默认站点(即未指定主机名的绑定)。

您可以通过启动 Telnet 并向您的服务器 IP 地址(来自本地主机或其他主机)发出 HTTP 请求并包含您应该得到预期响应的 HOST 标头来看到这一点。 (这并不是非常有用 - 这通常由您的浏览器完成 - 但它可能会让您对真正发生的事情有所了解......)

使用telnet 192.168.1.2 80" 启动 Telnet(更改服务器的 IP),然后复制/粘贴或在 telnet 窗口中键入以下 2 行,然后是空白行:

GET /TestApp/ HTTP/1.1
host: testapp

您应该会看到从该 URL 返回的 HTML。如果您尝试上述方法,但省略host,您将从默认网站(或 404 页面等)获取 HTML

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多