У меня возникли проблемы с настройкой перенаправления исходящего URL-адреса обратного прокси в IIS 7 с ARR. У домена есть 2 перезаписи входящего URL и 1 исходящего URL. Входящие работают нормально и проблем с ними не видел.
Однако исходящее перенаправление приводит к сбою пула приложений каждый раз, когда оно включается. И он будет продолжать сбой, пока я не отключу правило исходящего трафика. Я думаю, что это может быть какая-то петля в моих перенаправлениях, но я не уверен. Я сам не слишком хорошо знаком с регулярными выражениями, и мне не удалось найти многого из поиска в Интернете.
Вот 2 работающих перенаправления:
<rule name="Rule1" enabled="true" stopProcessing="false">
<match url="^blog/$" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="0" />
<set name="HTTP_X_FORWARDED_HOST" value="domain.com" />
</serverVariables>
<action type="Rewrite" url="http://blog.domain.com" appendQueryString="True" />
</rule>
<rule name="Rule2" enabled="true" stopProcessing="false">
<match url="^blog/(.*)" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="0" />
<set name="HTTP_X_FORWARDED_HOST" value="domain.com" />
<set name="HTTP_X_FORWARDED_FOR" value="{REMOTE_ADDR}" />
</serverVariables>
<action type="Rewrite" url="http://blog.domain.com/blog/{R:1}" appendQueryString="True" />
</rule>
И вот правило исходящего трафика, которое приводит к сбою пула приложений при его включении:
<outboundRules rewriteBeforeCache="true">
<rule name="outRule1" preCondition="isHtml" enabled="false" stopProcessing="false">
<match filterByTags="A" pattern="^http(s)?://blog.domain.com/blog/(.*)" />
<action type="Rewrite" value="http{R:1}://www.domain.com/blog/{R:2}" />
<conditions logicalGrouping="MatchAll">
</conditions>
</rule>
<preConditions>
<preCondition name="isHtml">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
Любая помощь очень ценится.
Вам, вероятно, потребуется установить rewriteBeforeCache
ложь для ваших исходящих правил
Павел