IIS HTTP / S переписать с SSL разгрузкой нестандартного локального порта - PullRequest
0 голосов
/ 28 июня 2018

Хорошо, я захожу в тупик. Вот мой сценарий:

  • IIS работающих сайтов на 80 и 443 - external.foo.com и https://external.foo.com

  • Отдельный веб-сервис запускает приложение на порту 801 на том же узле - "веб-приложение3".

Я создал сайт в IIS для external.foo.com / app3 . Мне нужно, чтобы весь трафик, поступающий на http (s): //external.foo.com/app3, направлялся на локальный порт 801 с разгрузкой SSL - поэтому соединение клиента с IIS является SSL, но Соединение IIS с локальной службой - http через порт 801.

Вот мой набор правил для foo / app3 в IIS, но он не работает, и я чувствую, что попробовал 1000 вещей, которые не совсем меня туда привели.

<rewrite>
    <rules>
        <rule name="HTTP and HTTPS to local Port 801 w/ offloading" enabled="true" stopProcessing="true">
             <match url="(.*)" ignoreCase="true" />
             <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
             </conditions>
                <action type="Redirect" url="https://external.foo.com:801/{R:0}" appendQueryString="false" />
          </rule>
       </rules>
 </rewrite>

Я, честно говоря, думаю, что моя проблема заключается в необходимости указать порт 801 в запросе, но я недостаточно знаком с этой областью, чтобы понять это. В нескольких моих тестах я видел, где указываются оба порта 80 или 443, которые не попадут в app3.

Я также попробовал маршрут и правило серверной фермы / балансировки нагрузки, но, честно говоря, это только смутило меня больше ... В какой-то момент я смог заставить все мои другие сайты перенаправить и загрузить app3, но не app3! Ниже приведено это правило:

<rewrite>
   <globalRules>
         <clear />
            <rule name="ARR_App3Proxy_loadbalance" enabled="true" patternSyntax="ExactMatch" stopProcessing="true">
                <match url="*external.foo.com/app3" />
                <action type="Rewrite" url="http://App3Proxy/{R:0}" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
              </conditions>
         </rule>
    </globalRules>
</rewrite>

Я новичок - помогает уговорить!

Обновление:

Хорошо, теперь все сайты перенаправляются в app3 через HTTPS, и кажется, что разгрузка работает нормально с использованием ARR. Глобальное правило ниже.

<proxy enabled="true" />
        <rewrite>
            <globalRules>
                <clear />
                <rule name="ARR_App3Proxy_loadbalance" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <action type="Rewrite" url="http://App3Proxy/{R:0}" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    </conditions>
                </rule>
            </globalRules>
        </rewrite>

Теперь мне просто нужно настроить таргетинг на external.foo.com / app3 , чтобы мои другие сайты IIS были исключены из этого ... Я сейчас исследую и тестирую, но любая помощь будет благодарна оценили.

...