IIS反向代理

时间:2016-01-08 19:34:25

标签: asp.net asp.net-mvc iis iis-7.5 reverse-proxy

我有两个网站。

XX.XX.XX.XXX:5917这是一个webforms网站

XX.XX.XX.XXX:5916这是一个mvc网站。

两个网站位于同一台IIS 7服务器上。我可以浏览每个网站,登录等。

但是,当用户转到XX.XX.XX.XXX:5917/Report时,我希望提供XX.XX.XX.XXX:5916/Report中的内容,但是要保留XX.XX的网址.XX.XXX:5917 /报告

为此,我正在尝试在5917网站上设置反向代理,以提供5916的内容。

当我有一个重定向规则时,我可以点击5917中的链接到报告,它将带我到5916 / Reports。这有效,但更改地址栏。当我使用重写规则选项时,绝对不会发现任何可辨别的内容。如果我搞砸了动作括号中的结束URL,那么页面就会中断,所以我知道它至少会评估规则。

以下是“工作”重定向规则:

<rule name="Reverse Proxy to Reports" stopProcessing="true">
    <match url="\bReport\b" />
    <action type="Redirect" url="http://XX.XX.XX.XXX:5916/{R:0}" />
</rule>

我错过了什么吗?我从哪里开始?

1 个答案:

答案 0 :(得分:1)

尝试在XX.XX.XX.XXX:5917 WebForms web.config上添加此内容:

<system.webServer>
    ...
    <rewrite>
        ...
        <rules>
            <rule name="ReverseProxyInboundRuleForReports" stopProcessing="true">
                <match url="(Report/.*)" />
                <action type="Rewrite" url="http://localhost:5916/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

您可能需要在IIS上使用“应用程序请求路由”扩展才能使其正常工作。如果是这样,那么你可以从这个链接获得它:

http://www.iis.net/downloads/microsoft/application-request-routing

您还可以在此链接上阅读有关该技术的更多信息:

http://weblogs.asp.net/owscott/creating-a-reverse-proxy-with-url-rewrite-for-iis

祝你好运!