![应用程序请求路由 (ARR) - 单服务器反向代理设置](https://linux22.com/image/596467/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%AF%B7%E6%B1%82%E8%B7%AF%E7%94%B1%20(ARR)%20-%20%E5%8D%95%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E8%AE%BE%E7%BD%AE.png)
我有一台 Web 服务器,上面运行着两个 .NET 应用。它们在服务器上的设置是 app1.mydomain.com 和 app2.mydomain.com。
我希望能够接收任何发送到 app1.mydomain.com/subfolder 的请求,并使用 ARR 将其重写为 app2.mydomain.com/subfolder。
我在让它在单个服务器上运行方面遇到了困难,并且网络上的所有 ARR 示例似乎都意味着我需要在两个 Web 服务器前面设置另一台专用于 ARR 的服务器。
我尝试在一台 Web 服务器上执行的操作是否可行?如果可以,该如何做?
答案1
我认为您需要隐藏这两个站点。
使 ARR(默认网站)成为唯一监听端口 80 的网站。使其他两个网站只监听不同端口(例如 81 和 82)上的环回(127.0.0.1)。然后,您可以在 ARR 上创建规则以转发到 app2(例如,在 ARR 中创建 2 个服务器场,每个服务器场中有一台服务器)。
答案2
您不需要在这里使用 ARR——只需设置一个 URL 重写即可将请求重定向到正确的应用程序。
如果您不想查看 ARR 的反向代理端,而不是请求路由,则需要全局启用该功能,然后您可以:
- 在 app1.mydomain.com/subfolder 添加虚拟站点
- 添加 Url Rewrite 反向代理规则以命中 app2.mydomain.com/subfolder
请注意,反向代理不能与 Windows 身份验证混合。