Я пытаюсь настроить хост виртуальной машины (в настоящее время работает ubuntu + KVM), на котором будет размещено несколько виртуальных машин для разных приложений. Например, у нас есть вики, работающая на одной виртуальной машине, и веб-приложение, работающее на другой.
Host / \ VM1 VM2
Внутри виртуальные машины находятся в собственной виртуальной сети со своими IP-адресами, однако внешне существует только один IP-адрес, который является IP-адресом хоста.
В нашей сети настроен домен, который указывает на IP-адрес хоста, и я могу настроить iprule для перенаправления трафика, предназначенного для хоста, непосредственно на одну из виртуальных машин. Однако, чтобы сделать обе виртуальные машины доступными для внешнего мира, мне нужно каким-то образом пересылать запросы на основе URL-адреса.
В идеале я бы хотел пересылать запросы по субдоменам, например.
http://vm1.host/ -> host -> VM1 http://vm2.host/ -> host -> VM2
но альтернативно по пути URL:
http://host/vm1 -> host -> VM1 http://host/vm2 -> host -> VM2
Я уже установил Apache на хост-машине. Какие правила пересылки / перенаправления / псевдонима / обратного проксирования мне понадобятся, чтобы такая настройка сети работала? Есть ли что-нибудь еще, необходимое для обработки поддоменов?
Вы обслуживаете какие-либо веб-страницы от самого Хоста? Если нет, и все веб-данные находятся на VM1 и VM2, то, вероятно, Apache на хосте - не лучшее решение. Скорее всего вам следует использовать что-то вроде haproxy или Кальмар на хосте для пересылки запросов к Apache, работающему на VM1 и 2
Я думаю, что использование Apache на хосте - это нормально. Это в основном та же ситуация, что и это сообщение serverfault, вам нужен какой-то обратный прокси.
У меня несколько похожая среда, в которой мне нужно пересылать данные с одного хоста на другой, поэтому я использую Apache mod_proxy. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html Надеюсь, это поможет, вы также можете использовать виртуальный хост http://httpd.apache.org/docs/2.2/vhosts/