Назад | Перейти на главную страницу

Правило перезаписи исходящего прокси-сервера ARR для перенаправлений

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

Это означает, что все относительные ссылки и перенаправления по-прежнему работают, как и раньше.

Если действительно необходимо переписать заголовок местоположения, посмотреть это пошаговое руководство