这里我们在路由器后面有两台 Web 服务器 - 一台 IIS 和一台 Tomcat(位于不同的机器/IP 地址上)。域指向外部 IP,该 IP 转发到 IIS(例如内部 IP 192.168.1.10)。我尝试执行以下操作:输入 [www.]ourdomain.com 时,必须加载 IIS 上的默认网站(此部分没问题),但输入 test.ourdomain.com 时,我想将此请求重定向到另一台 Web 服务器(例如 192.168.1.11)。我在 IIS 上创建了一个站点“test”,输入 test.ourdomain.com 时会显示该站点。然后我尝试使用以下规则重定向它:请求的 URL 与以下模式匹配:*(使用通配符)条件:{HTTP_HOST} 与 test.ourdomain.com 匹配操作类型:重写重写 URL:http://192.168.1.11/{R:0} 但当我尝试加载 test.ourdomain.com 时,我得到了 IIS 的错误 404 页面。显然我错了 :-) 我该如何进行这样的重定向?
答案1
重写必须是磁盘上的相对路径,位于同一网站下。这就是导致您出现 404 错误的原因。
重定向将发送客户端重定向,但这不起作用,因为 192.168.1.11 是无法公开访问的内部 IP。
您需要的是 ARR:http://www.iis.net/expand/ApplicationRequestRouting。它是一个反向代理,将接收公共请求并将其转发到内部服务器。这是客户端和内部服务器之间的中间人。它利用 IIS 和 URL 重写,因此您已经完成了大部分工作。