我正在运行 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 场。基本上,它是使用重写规则来实现这一点,但它也为反向代理提供了一些额外的好处。