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

Использование 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, но я не могу заставить его пересылать на основе заголовков хоста (например, «пересылать все запросы для www.apachesite.com -> localhost: 8080 ")

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

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

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

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