使用 IIS7 作为反向代理

Eri*_*lje 3 rewrite iis-7 web-server apache-2.2

我正在家里设置一个服务器来托管一些小网站。其中之一是基于 .NET 并且需要 IIS,其他是基于 PHP 并且需要 Apache。所以,我在我的服务器上安装了 IIS 7 和 Apache 2.2.x,IIS 在端口 80 上,Apache 在端口 8080 上运行。

我想将 IIS 设置为反向代理,将 Apache 站点的请求转发到端口 8080 并根据主机标头为 .NET 站点本身的请求提供服务。像这样:

www.mydotnetsite.com/* -> IIS -> serve from IIS
www.myapachesite.com/* -> IIS -> forward to apache on port 8080
www.myothersite.com/*  -> IIS -> forward to apache on port 8080
Run Code Online (Sandbox Code Playgroud)

我做了一些谷歌搜索,似乎应用程序请求路由功能可以满足我的需要,但我似乎无法让它按照我想要的方式工作。我可以让它将所有流量转发到 Apache 服务器,我可以让它将具有特定 URL 模式的流量转发到 Apache 服务器,但我似乎无法根据主机标头(例如“转发www.apachesite.com 的所有请求 -> localhost:8080")

所以问题是,我将如何配置 ARR 来做到这一点?还是我需要不同的工具?

我也愿意使用 Apache 作为反向代理并将 .NET 站点请求转发到 IIS,如果这样更容易的话(在端口 80 上运行 Apache,在 8080 上运行 IIS)。

Sco*_*MVP 7

埃里克,这是一个老问题,但我会为未来的读者留下关于 ARR 选项的答案。要根据主机标头重定向,请在条件部分使用 {HTTP_HOST}。ARR 支持基于所有服务器变量的重定向逻辑,因此您有足够的灵活性(与 mod_proxy 一样多)。