IIS反向代理到不同的服务器

时间:2013-04-29 19:13:19

标签: javascript iis web-config reverse-proxy windows-server

我试图找出是否有可能在IIS中执行反向代理,实际上是在不同的Web服务器端点。我用它在同一台机器上遍历端口,但从不使用其他机器。这样做的目的是我正在编写一个需要连接到不同服务器上的数据的Javascript应用程序,并且我收到Same Origin错误。

注意:不幸的是,更改远程服务器和服务以接受JSONP或CORS不是一种选择。

以下是使用IIS反向代理进行端口跳转的配置

<system.webServer>      
        <rewrite>
            <rules>
                <rule name="Reverse Proxy to Different Port" stopProcessing="true">
                    <match url="^name/(.*)" />
                    <action type="Rewrite" url="http://localhost:5984/{R:1}" />
                </rule>
            </rules>
        </rewrite>
</system.webServer>

1 个答案:

答案 0 :(得分:5)

要使其工作,您需要在IIS服务器上安装Application Request Routing (AAR),以便像反向代理一样运行。之后,将以下内容添加到web.config中:

<system.webServer>      
    <rewrite>
        <rules>
            <rule name="Reverse Proxy to Different Port" stopProcessing="true">
                <match url="^name/(.*)" />
                <action type="Rewrite" url="http://[hostname here]:[port number here]/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

这会将路径以name/开头的任何请求重定向到其他服务器。因此,如果您在远程服务器上寻找/foo/bar,则需要Javascript来请求/name/foo/bar到配置了反向代理的IIS服务器。