Обратный прокси-сервер IIS с перезаписью не может обрабатывать перенаправление с сервера, к которому мы подключаемся
У нас есть сервер A, и в некоторых случаях мы переписываем запросы к нашему партнеру на сервере B.
В некоторых случаях сервер B ответит перенаправлением на совершенно другой веб-сайт, что и ожидается, скажем, на сервер C. Однако, когда сервер перенаправления формы B возвращается на сервер A, сервер A интерпретирует его как перенаправление на расположение на самом себе (A), а не как перенаправление на другой сайт - сервер C.
Как принять к сведению перенаправление на внешний веб-сайт и перейти на него, а не предполагать, что перенаправление находится на моем сервере (и 404ing)? Мы запускаем IIS 7 с модулем перезаписи.
Любая помощь высоко ценится.
3 ответа
Перейдите в настройки прокси-сервера ARR (они скрыты в IIS -> Кэш маршрутизации запросов приложений -> Настройки прокси-сервера) и снимите флажок "Обратный перезаписать хост в заголовках ответов". Этого должно быть достаточно.
Если вы не можете изменить это в графическом интерфейсе, вы можете установить конфигурацию через командную строку.
Примерно так должно работать:
appcmd.exe set config -section:system.webServer/proxy /reverseRewriteHostInResponseHeaders:"False" -commit:apphost
Флажок "Обратный перезаписать хост в заголовках ответа" был для меня в другом месте. Я использую Windows Server 2012 R2.
Это было в Подключения -> Фермы серверов -> -> Прокси, чуть ниже настроек времени ожидания.
В моем случае проверка этого разрешила мои проблемы.