Обратный прокси-сервер IIS с тем же заголовком хоста в условиях на 2 внутренних интерфейсных серверах

я думал, что обратный прокси должен быть простым, но столкнулся с проблемой. я пытаюсь выполнить следующее: пять 2 веб-интерфейсов (serverA, ServerB), на которых размещено веб-приложение contoso.local. затем у меня есть сервер, который является обратным прокси-сервером на iis (с ARR и URL Rewrite)

обратный прокси-сервер должен отправлять все входящие запросы contoso.local на serverA

если path123 находится в URL-адресе, он должен отправить запрос на serverB

мне нужно сохранить hostheader

поэтому я настроил следующее на обратном прокси:

  • включил прокси в ARR

  • установить savehostheader через system.webServer/proxy"%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost

  • добавлен новый веб-сайт в iss, который имеет contoso.local в качестве заголовка хоста

  • добавлены 2 правила со следующей конфигурацией, описанной в web.config этого веб-сайта contoso.local:

         <rewrite>
         <outboundRules>
             <preConditions>
                 <preCondition name="ResponseIsHtml1">
                     <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                 </preCondition>
             </preConditions>
         </outboundRules>
         <rules>
             <clear />
             <rule name="ReverseProxyInboundRule2" stopProcessing="true">
                 <match url="^path123(.*)" />
                 <conditions>
                     <add input="{CACHE_URL}" pattern="^(https?)://" />
                 </conditions>
                 <action type="Rewrite" url="{C:1}://serverB/{R:1}" />
             </rule>
             <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                 <match url="(.*)" />
                 <conditions>
                     <add input="{CACHE_URL}" pattern="^(https?)://" />
                 </conditions>
                 <action type="Rewrite" url="{C:1}://serverA/{R:1}" />
             </rule>
    
         </rules>
     </rewrite>
    

теперь, если я проверю, я всегда попаду на serverA. я что-то упустил или что-то не так в моей логике?

ДаниэльВ

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *