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

Обратный прокси-сервер Apache для нескольких виртуальных машин

Я искал решение своей проблемы повсюду и не нашел.

Настроить:

Итак, у меня есть хост-машина с виртуальным боксом с несколькими веб-серверами. Каждая виртуальная машина (веб-сервер) имеет 2 сетевых адаптера; Nat (с переадресацией портов с 8080 на 80 и SSH) и адаптер только для хоста. У каждого адаптера только для хоста есть собственный сетевой адаптер (поэтому каждая виртуальная машина должна иметь собственный внешний IP-адрес). Используя apache на хост-машине, у меня есть следующий файл в доступных сайтах (по одному для каждого сервера):

<VirtualHost *:80>
   ProxyPreserveHost On
   ProxyRequests Off
   ServerName www.domain1.com
   ServerAlias domain1.com
   ProxyPass / http://192.168.58.1:8080/
   ProxyPassReverse / http://192.168.58.1:8080/
</VirtualHost>

Идея состоит в том, что apache в хост-системе будет перенаправлять запросы на основе имени домена на правильную виртуальную машину, на которой размещен этот сайт (тогда пусть apache на этом сервере делает то, что ему нужно).

Проблема:

Кажется, все мои домены указывают на один и тот же vm. Таким образом, независимо от того, на какой домен я захожу, я попадаю на одну и ту же страницу. Мне интересно, что я делаю не так и как заставить домены указывать на правильную виртуальную машину? Это связано с неправильной настройкой имен хостов на серверах? Если это проблема с именем хоста, какие / как мне установить имена хостов?

Обновить:

Кажется, проблема не в apache. Кажется, что каким-то образом все IP-адреса хоста указывают на одну и ту же виртуальную машину. Поэтому мне, должно быть, не хватает какой-то конфигурации с адаптерами только для хоста на vms, хотя я позаботился о том, чтобы у каждой vm был свой собственный набор.

Решено:

См. Ответ ниже.

В итоге я решил эту проблему, используя только один адаптер только для хоста вместо нескольких адаптеров, а затем просто используя разные порты для каждой виртуальной машины. Таким образом, каждая виртуальная машина имела одинаковый внешний IP-адрес, только разные порты. Я также установил статический IP-адрес на каждой виртуальной машине, хотя я не совсем уверен, что это было необходимо. После этого я просто обновил каждую конфигурацию Apache на хост-машине для нового IP-адреса и портов.