Я настраиваю дома сервер для размещения нескольких небольших веб-сайтов. Один из них основан на .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.