我不确定我是否遗漏了某些东西,但我真的希望它能像路由规则表一样工作。
但是,如果我在服务器场上有服务,那么同一服务应该在ARR机器上公开相同的端点。
我不确定为什么那真的需要或者做错了什么。 它很傻。因此,如果我有一些应用程序的农场,首先必须将其部署到ARR机器,否则由于服务/网页在ARR设置的机器上不可用,我会得到各种503,500,404等错误。
答案 0 :(得分:0)
对于初学者,请确保启用“代理”功能...
IIS主页 - >应用程序请求路由 - >服务器代理设置 - >启用代理
然后将重写规则添加到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作为反向代理,可以在此处找到:
但基本思路如上所列。