IIS Rewrite и обратный прокси для нескольких приложений - PullRequest
0 голосов
/ 12 марта 2019

У меня есть IIS 10 с настроенным веб-сайтом. Под этим сайтом есть несколько приложений. MyWebsite / app1 - MyWebsite / app2 - MyWebsite / app3

У меня есть другой сервер (назовем его EndServer), на котором размещены 3 веб-сайта на 3 разных портах.

Хорошо, теперь я хочу использовать IIS в качестве обратного прокси-сервера для перенаправления и маскирования приложения 1 на один из этих сайтов на втором сервере и приложения 2 на другой. в конце пользователи введут https://mywebsite/app1 и увидят содержимое веб-сайта 1 на конечном сервере.

Примечание: для меня важно, чтобы конечные пользователи видели URL как https://mywebsite/app1/

как мне отредактировать приведенное ниже правило:

<rewrite>
        <rules>
            <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://endserver:8052/{R:1}" />
                <conditions trackAllCaptures="true">    
                </conditions>
           </rule>
  </rewrite>

Спасибо A.

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Спасибо за ваш ответ. Я получил ту же ошибку. как вы видите ниже / App1 отсутствует в URL после localhost: Port локальный: 8888 / активы / стили / custom.css м = +1549903616,0

Мне кажется, проблема в том, чтобы переписать URL ответа. Я не знаю, кому я могу добавить недостающую часть в URL.

Привет.

0 голосов
/ 13 марта 2019

Согласно вашему описанию, я предлагаю вам попробовать использовать приведенное ниже правило перезаписи URL.

<rule name="ReverseProxyInboundRule1" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions trackAllCaptures="true">
                        <add input="{URL}" pattern="^/app1/(.*)" />
                    </conditions>
                    <action type="Rewrite" url="http://endserver:8052/{C:1}" />
                </rule>
 <rule name="ReverseProxyInboundRule2" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions trackAllCaptures="true">
                        <add input="{URL}" pattern="^/app2/(.*)" />
                    </conditions>
                    <action type="Rewrite" url="http://endserver:8053/{C:1}" />

                </rule>
...