Хорошо, я захожу в тупик. Вот мой сценарий:
Я создал сайт в 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 были исключены из этого ... Я сейчас исследую и тестирую, но любая помощь будет благодарна оценили.