Обратный прокси-сервер IIS / перезапись глобального URL для папки «/ api /» для всех сайтов - PullRequest
0 голосов
/ 08 мая 2020

Я хотел бы отменить любые запросы к экземпляру IIS через прокси для любых сайтов, где запрос находится в папке '/ api /'. Я настроил серверную ферму, и обратный прокси-сервер работает для всего, используя подстановочный знак '*', но когда я хочу ограничить область действия RegEx, он не будет перезаписывать / прокси на внутренний сервер. Шаги, которые я предпринял на уровне IIS INSTANCE:

  1. Настройте веб-ферму - в ней только один сервер, machine2
  2. Настройте перезапись для '*'
  3. Протестировано против 'http://machine1/site1/api/api1' - он был успешно перенаправлен на machine2 / site1 / api / api1
  4. Правило для входящего трафика изменено с подстановочных знаков на регулярные выражения
  5. Изменен шаблон на '. (/. / api /.*)' (без одинарных кавычек)
  6. Проверено на 'http://sarjhennew10vm/site1/api/api1'
  7. Запрос не был перенаправлен на машину 2.

Ниже приведен фрагмент из моего applicationHost.config [root 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-адреса на ферму серверов для любого сайта в экземпляре для указанных c папок?

Изменить: Ответ был дан ниже - я включаю изображение на случай, если другие столкнутся с этим. Мне непонятен тестовый образец - а документацию счетчиков можно найти здесь .

Test Pattern Matching in IIS

1 Ответ

1 голос
/ 08 мая 2020

Ваш шаблон неверен, вы можете попробовать следующий код и изменить URL-адрес перезаписи на https://Farm1/ {R: 0}

<rule name="ARR_Farm1_loadbalance" patternSyntax="ECMAScript" stopProcessing="true">
    <match url=".*(\/api\/.*)" />
    <action type="Rewrite" url="https://Farm1/{R:0}" />
</rule>
...