Как я могу написать IIS Rewrite несколько поддоменов для нескольких локальных портов правило? - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу установить правила обратного прокси в IIS для списка ниже.

app1.application.com > localhost:26000
app2.application.com > localhost:26001
app3.application.com > localhost:26002

Я добавил привязки на одном сайте IIS, затем определил одно правило для порта 26000. Все они перенаправляются в приложение на порт 27000.

Вот правило, которое я добавил;

<rule name="ReverseProxyInboundRule1" stopProcessing="true">
    <match url="(.*)" />
    <action type="Rewrite" url="http://localhost:26000/{R:1}" />
</rule>

Как мне добавить другие правила?

Спасибо

1 Ответ

0 голосов
/ 03 апреля 2019

Вот так. Обратите внимание на 4-е правило, как я делаю временное перенаправление на интернет-URL. Это простой способ для «тестирования» ваших сценариев, так как он более надежен для перенаправления и внутренних переписываний. Обычно я получаю все, что работает с перенаправлениями (опять же, использую временные), а затем переключаю его на внутренние перезаписи.

Наконец, вы можете рассмотреть возможность добавления универсальной перезаписи после 3 для перенаправления либо на страницу с ошибкой, либо в приложение «по умолчанию». Поскольку эти правила обрабатываются по порядку (и остановка обработки установлена), вы можете просто добавить это правило без условия HTTP_HOST в конце.

            <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://localhost:26000/{R:1}" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^(app1\.application\.com)$" />
                </conditions>
            </rule>
            <rule name="ReverseProxyInboundRule2" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://localhost:26001/{R:1}" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^(app2\.application\.com)$" />
                </conditions>
            </rule>
            <rule name="ReverseProxyInboundRule3" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://localhost:26002/{R:1}" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^(app3\.application\.com)$" />
                </conditions>
            </rule>
            <rule name="ReverseProxyInboundRule4" enabled="false" stopProcessing="true">
                <match url="(.*)" />
                <action type="Redirect" url="http://www.google.com" redirectType="Temporary" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^(app4\.application\.com)$" />
                </conditions>
            </rule>
...