针对所有站点的“ / api /”文件夹的IIS反向代理/全局URL重写

问题描述 投票:0回答:1

我想将对任何请求的反向请求代理到IIS实例中,该请求位于'/ api /'文件夹中的任何站点。我设置了一个服务器场,并使用'*'通配符使反向代理适用于所有内容,但是当我想将范围限制为RegEx时,它将不会重写/代理到后端服务器。我在IIS INSTANCE级别上采取的步骤:

  1. [设置网络场-机器2中仅一个服务器
  2. 为'*'设置重写”>
  3. 针对“ http://machine1/site1/api/api1”进行了测试-已成功路由到machine2 / site1 / api / api1
  4. 将入站规则从通配符更改为正则表达式
  5. 将模式更改为'。(/。
  6. / api /.*)'(不带单引号)
  7. 针对'http://sarjhennew10vm/site1/api/api1'进行了测试
  8. 请求未路由到计算机2。
  9. 下面是我的applicationHost.config [IIS的根目录]中的代码段。

    <rewrite>
        <globalRules>
            <rule name="ARR_Farm1_loadbalance" patternSyntax="ECMAScript" stopProcessing="true">
                <match url=".*(\/.*\/api\/.*)" />
                <action type="Rewrite" url="http://Farm1/{R:1}" />
            </rule>
        </globalRules>
    </rewrite>
    <proxy enabled="true" />

是否可以将实例上任何站点的特定站点的全局URL重写到服务器场中?

编辑:下面回答了-我附上一张图片,以防其他人碰到。我不清楚测试模式-以及计数器文档found here

Test Pattern Matching in IIS

我想将对任何请求的请求反向代理到IIS实例,该请求位于'/ api /'文件夹中的任何站点。我设置了一个服务器场,并使用...

iis url-rewriting reverse-proxy
1个回答
1
投票

您的模式不正确,您可以尝试以下代码,并将重写URL更改为https://Farm1/ {R:0}

© www.soinside.com 2019 - 2024. All rights reserved.