IIS7 中虚拟目录的反向代理

IIS7 中虚拟目录的反向代理

我正在运行 WHS 2011,并尝试通过 IIS7 代理内部 Web 服务器 (subsonic)。目标是:

https://external_host/subsonic->http://内部主机:4040

我目前所做的:

  • 在默认网站中创建虚拟目录“subsonic”
  • 项目清单

创建重写规则

每当我调用 URLhttps://external_host/subsonic我在尝试访问时会收到 404https://external_host/login.view.login.view实际上是内部Web服务器的登录页面。

以下是虚拟目录“subsonic”的配置:

    <rewrite>
        <rules>
            <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://homeserver:4040/{R:1}" />
            </rule>
        </rules>
        <outboundRules>
            <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
                <match filterByTags="A, Form, Img" pattern="^http(s)?://homeserver:4040/(.*)" />
                <action type="Rewrite" value="http{R:1}://www.external.com/{R:2}" />
            </rule>
        </outboundRules>
    </rewrite>

是否有可能在虚拟目录上运行反向代理?

答案1

IIS 应用程序请求路由 (ARR) 是解决此问题的完美方案。我们今天正在将面向公众的域代理到内部托管的 Web 场。基本上,它是使用重写规则来实现这一点,但它也为反向代理提供了一些额外的好处。

相关内容