在ARR机器上没有匹配的服务/网站可以让ARR工作吗?

时间:2015-09-18 05:51:18

标签: iis arr

我不确定我是否遗漏了某些东西,但我真的希望它能像路由规则表一样工作。

但是,如果我在服务器场上有服务,那么同一服务应该在ARR机器上公开相同的端点。

我不确定为什么那真的需要或者做错了什么。 它很傻。因此,如果我有一些应用程序的农场,首先必须将其部署到ARR机器,否则由于服务/网页在ARR设置的机器上不可用,我会得到各种503,500,404等错误。

1 个答案:

答案 0 :(得分:0)

对于初学者,请确保启用“代理”功能...

IIS主页 - >应用程序请求路由 - >服务器代理设置 - >启用代理

ARR Enable Proxy

然后将重写规则添加到web.config,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="AppProxy1" stopProcessing="true">
                    <match url="app1/(.*)" />
                    <action type="Rewrite" url="http://appserver:8080/{R:1}" />
                </rule>
                <rule name="AppProxy2" stopProcessing="true">
                    <match url="app2/(.*)" />
                    <action type="Rewrite" url="http://appserver:8081/{R:1}" />
                </rule>
                <!-- add more apps here -->
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

确保重写规则包含绝对URL(包括http://)。此关键步骤表示ARR以“代理”模式运行。

此外,您可能需要根据配置重写出站HTML链接。有关这方面的更多信息以及一般使用ARR作为反向代理,可以在此处找到:

http://www.iis.net/learn/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing

但基本思路如上所列。