В настоящее время я пытаюсь собрать доказательство концепции смешивания различных технологий на одном веб-сайте, чтобы упростить миграцию и добавить гибкости. Идея состоит в том, чтобы создать один гибридный сайт за обратным прокси-сервером IIS 7.5 ARR.
В настоящее время обратный прокси ARR перенаправляет все запросы на наш основной сайт. Запрос следующий:
client -> ARR: Get /
ARR -> Server 1: Get /
Server 1 -> ARR: 200: /index.htm
ARR -> client: 200: /index.htm
...Все идет нормально.
Скажем, я хочу добавить новый сайт (корень другого сервера) в качестве дочернего сайта моего основного сайта. простое правило для входящих подключений поможет:
<rule name="sub1" stopProcessing="true">
<match url="^mySubsite(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="http://server2/{R:1}" />
</rule>
Теперь запросы следующие:
client -> ARR: Get /mySubsite
ARR -> Server 2: Get /
Server 2 -> ARR: 200: /index.htm
ARR -> client: 200: /index.htm
... Все еще хорошо.
Проблема возникает, когда сайт на server2 отправляет перенаправление (например, на страницу входа). В случае с SharePoint он перенаправит пользователя на: /_layouts/Authenticate.aspx?Source=%2F ... которого не существует:
client -> ARR: Get /mySubsite
ARR -> Server 2: Get /
Server 2 -> ARR: 301: /_layouts/Authenticate.aspx?Source=%2F
ARR -> client: 301: /_layouts/Authenticate.aspx?Source=%2F
client -> ARR: Get /_layouts/Authenticate.aspx?Source=%2F
ARR -> client: 404: Not Found
Кто-нибудь знает способ написать правило для исходящего трафика, чтобы переписать ответ с сервера 2 «301: /_layouts/Authenticate.aspx?Source=%2F» на «301: /mySubsite/_layouts/Authenticate.aspx?Source=%2FmySubsite%2F "?
Я решил это с помощью поддоменов. Так что вместо:
www.mydomain.com/mysite1
www.mydomain.com/mysite2
Я использую:
mysite1.mydomain.com
mysite2.mydomain.com
Это означает, что все относительные ссылки и перенаправления по-прежнему работают, как и раньше.
Если действительно необходимо переписать заголовок местоположения, посмотреть это пошаговое руководство