У меня есть один сервер ESXi 5, который подключен к одному IP-адресу. На этом сервере я создал 2 виртуальные машины:
a.site.com
)b.site.com
)Я не уверен, как направить трафик на правильную виртуальную машину на основе заголовка хоста?
Вам необходимо установить обратный прокси-сервер на хост-машину (или на одну из виртуальных машин, на которую вы будете маршрутизировать все запросы), который будет внутренне перенаправлять запросы на отдельные виртуальные машины на основе заголовка хоста. Обе виртуальные машины должны быть доступны с хост-машины по определенному IP-адресу или порту.
Что касается обратного прокси - один из вариантов - Apache с mod_proxy, Nginx это легкая альтернатива. Согласно этому сообщению, nginx может быть настроен как обратный прокси, который также работает на основе значения Host.
(Отказ от ответственности: я сам практически этого не делал.)
Я сделал это с IBM HTTP Server (IHS), который я не считаю бесплатным, но моя любимая версия обратного прокси-сервера под GPL - Pound (www.apsis.ch/pound/). Ознакомьтесь с разделом «Виртуальные хосты (в целом)» на этой странице. Я считаю, что это то, что вы ищете. Ниже представлена слегка измененная версия конфигурации с этой страницы ...
ListenHTTP
Address 1.2.3.4
Port 80
Service
HeadRequire "Host: .*a.site.com*"
BackEnd
Address 192.168.0.10
Port 80
End
End
Service
HeadRequire "Host: .*b.site.com.*"
BackEnd
Address 192.168.0.10
Port 80
End
End
End