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

Перенаправление обратного прокси на основе имени хоста

Вот моя установка:

Windows Server (2003) получает весь трафик для * .mydomain.com, который (до сих пор) перенаправляет весь входящий трафик порта 80 на виртуальную машину Linux (с использованием диспетчера виртуальной сети VMWare).

Теперь мне нужно настроить другой веб-сайт на этом сервере, используя IIS6, для обработки subdomain1.mydomain.com.

Как разделить HTTP-трафик как таковой:

  subdomain1.mydomain.com -> IIS
  everything else (*.mydomain.com, domain.com, raw IP) -> Linux VM

Я подумал о настройке сервера Apache в Windows в качестве обратного прокси. Но может ProxyPass обрабатывать имена хостов? (во всех примерах я вижу дескрипторы каталогов).

Есть ли другое / более простое решение? Бы lighttpd Помогите?

TIA за вашу помощь.

[FWIW: Изменение архитектуры не вариант. Иначе я бы не стал спрашивать ;-). Приемлемым вариантом, если это поможет (хотя я сомневаюсь), является установка 2-го общедоступного IP-адреса)]

Вы можете настроить VirtualHosts в Apache, а затем использовать ProxyPass для subdomain1.mydomain.com для обратного прокси-сервера в IIS и иметь VirtualHost по умолчанию, который обратный прокси в вашу виртуальную машину Linux.

Вам нужна примерно такая конфигурация:

<Virtualhost *:80>

    ServerName subdomain1.mydomain.com

    ....
    # Reverse proxy into IIS
    ProxyRequests off
    ProxyPass / http://ip.of.IIS.machine/
    ProxyPassReverse / http://ip.of.IIS.machine/
</VirtualHost>

<VirtualHost _default_:80>
    ....
    ProxyRequests off
    ProxyPass / http://ip.of.linux.machine/
    ProxyPassReverse / http://ip.of.linux.machine/        
</VirtualHost>

В этих конфигурациях отсутствует большая часть конфигурации, но важная часть состоит в том, что первое определение VirtualHost совпадает с subdomain1.mydomain.com, а затем это делает обратный прокси-сервер в машину IIS. Второе определение соответствует всему остальному и выполняет обратные прокси в Linux-машине.

Обратите внимание: я не тестировал вышеизложенное, как написано, но у меня определенно есть установка apache с несколькими виртуальными хостами, где один vritualhost является обратным прокси-сервером для другой машины, поэтому основная теория в порядке.