Использование IIS7 в качестве обратного прокси

Я настраиваю сервер дома для размещения нескольких небольших сайтов. Один из них основан на.NET и требует IIS, другие - на PHP и требуют Apache. Итак, на моем сервере установлены IIS 7 и Apache 2.2.x с IIS на 80-м порту и Apache на 8080-м.

Я хотел бы настроить IIS для работы в качестве обратного прокси-сервера, пересылать запросы сайтов Apache на порт 8080 и обслуживать запросы для самого сайта.NET на основе заголовков узлов. Как это:

www.mydotnetsite.com/* -> IIS -> serve from IIS
www.myapachesite.com/* -> IIS -> forward to apache on port 8080
www.myothersite.com/*  -> IIS -> forward to apache on port 8080

Я немного погуглил, и казалось, что функция маршрутизации запросов приложений будет делать то, что мне нужно, но я не могу заставить ее работать так, как мне хочется. Я могу заставить его пересылать ВЕСЬ трафик на сервер Apache, и я могу заставить его пересылать трафик с определенным шаблоном URL на сервер Apache, но я не могу заставить его пересылать данные на основе заголовков хоста (например, forward). все запросы на www.apachesite.com -> localhost:8080")

Итак, вопрос в том, как мне настроить ARR для этого? Или мне нужен другой инструмент?

Я также открыт для использования Apache в качестве обратного прокси-сервера и перенаправления запросов сайтов.NET в IIS, если это проще (запуск Apache на порту 80 и IIS на 8080).

2 ответа

Решение

Я предлагаю все наоборот. У вас будет гораздо меньше проблем, если вы запустите Apache на 80-м порту и заставите его выполнять обязанности прокси-сервера, а IIS - на 8080-м.

Эрик, это старый вопрос, но я оставлю ответ на вопрос о ARR для будущих читателей. Для перенаправления на основе заголовков хоста используйте {HTTP_HOST} в разделе Условия. ARR поддерживает логику перенаправления, основанную на всех серверных переменных, поэтому вы обладаете достаточной гибкостью (вплоть до mod_proxy).

Другие вопросы по тегам