Можно ли настроить IIS для пересылки запроса на другой веб-сервер?

81

У меня есть несколько веб-сайтов, настроенных на одном сервере IIS 6, которые отличаются заголовком узла.

Однако я хочу, чтобы один из сайтов обслуживался сервером Linux / Apache в моей сети. Нужно ли использовать надстройку обратного прокси-сервера для IIS или есть простой способ сообщить IIS о передаче всех запросов другому серверу?

Даниэль О
источник

Ответы:

83

Для IIS 7.5 Microsoft предоставляет официальные модули для этого!

В настройках сайта вы получите значок «URL Rewrite».

  • Открой это
  • щелкните правой кнопкой мыши на «списке входящих правил»
  • Выберите «Добавить правило (и)»
  • Выберите «Обратный прокси»

В этом диалоговом окне вы можете ввести имя хоста + порт для переадресации. После добавления правила открытие диалогового окна редактирования предлагает дополнительные настройки.

vdboor
источник
8
Это хорошо и все, но в первоначальном вопросе был указан IIS 6, поэтому я запутался, что ответ, относящийся к IIS 7.5, был помечен как «принятый». Было ли решение для IIS 6?
Тим Лонг
@Tim: вы можете использовать перезапись ISAPI, упомянутую ниже, но в остальном я не знаком с решениями IIS6.
vdboor
У меня проблемы с моей машиной Win10, и я не могу установить это. Есть ли ограничения для этих модулей? Нужно ли запускать его на серверной ОС от MS? спасибо
fpdragon
1
Имейте в виду, что существуют проблемы с обратным проксированием POST-запросов с использованием этого метода
Каспер Леон Нильсен,
2
@CasperLeonNielsen Не могли бы вы указать нам более подробную информацию о потенциальных проблемах POST?
Йенс Эрих
17

Для этой цели я использую стороннее программное обеспечение для Windows (IIS), которое, помимо других вещей, таких как перезапись URL-адресов, выполняет эту работу довольно хорошо: ISAPI Rewrite .

ISAPI Rewrite - это мощный механизм обработки URL-адресов, основанный на регулярных выражениях. Он работает в основном как Apache mod_Rewrite, но разработан специально для Microsoft Internet Information Server (IIS). ISAPI Rewrite - это фильтр ISAPI, написанный на чистом C / C ++, поэтому он очень быстрый. ISAPI_Rewrite дает вам свободу выйти за рамки стандартных схем URL и разработать собственную схему.

Поиск "Прокси". Вот документация для правила RewriteProxy .

Есть также очень похожий проект с открытым исходным кодом: Iapi Isapi Rewrite Filter .

splattne
источник
ссылка на документ для IIRF ProxyPass: cheeso.members.winisp.net/Iirf20Help/html/…
Cheeso
2
+1 - Это хорошо работает на IIS 6.
Эван Андерсон
Мне не удалось использовать IIRF в Windows 2008 R2 SP1 из-за этой проблемы: iirf.codeplex.com/workitem/32479
Питер К.,
1

Нет, не в IIS 6. Посмотрите на использование nginx / ubuntu (или даже nginx в Windows) в качестве обратного прокси-сервера перед вашим сервером IIS6. Нам пришлось использовать IIS7.5 для функций обратного прокси

Джон Фокс
источник
-3

Эта статья Microsoft KB должна помочь ответить на этот запрос.

Процедуры для перенаправления запросов на другой веб-сайт или в каталог:

  1. В диспетчере IIS разверните локальный компьютер, щелкните правой кнопкой мыши веб-сайт или каталог, который вы хотите перенаправить, и выберите Свойства.

  2. Нажмите Домашний каталог, Виртуальный каталог или вкладку Каталог.

  3. В разделе «Содержимое этого источника» выберите «Перенаправление на URL-адрес».

  4. В поле Redirect to введите URL-адрес целевого каталога или веб-сайта.

Ник О'Нил
источник
6
Учитывая тэг «обратный прокси» на вопрос автора, я предполагаю, что он ищет функциональность обратного прокси, а не перенаправление HTTP.
Эван Андерсон
5
Другой сервер не является общедоступным, поэтому, к сожалению, это не сработает
Даниэль О
Это просто неправильно.
tacos_tacos_tacos