1

我试图弄清楚是否有可能在 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>
4

1 回答 1

7

要完成这项工作,您需要在要充当反向代理的 IIS 服务器上安装应用程序请求路由 (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 服务器。

于 2013-04-29T23:44:55.373 回答