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

Настройка обратного прокси для виртуальных машин на HostOS

В настоящее время я устанавливаю сервер, состоящий из узла виртуализации (kvm в ubuntu) и 7 виртуальных машин, некоторые из которых работают с MySQL и LDAP, другие - с другими веб-серверами и веб-приложениями. Виртуальные машины, на которых работают базы данных, будут опрашиваться только другими виртуальными машинами на том же физическом сервере. Виртуальные машины веб-сервера будут запускать примерно 10-20 веб-сайтов и веб-приложений. Сервер будет размещен в центре обработки данных, напрямую подключенном к Интернету.

Моя идея состояла в том, чтобы использовать сеть NAT между хостом и виртуальными машинами (формируя внутреннюю локальную сеть) и назначить HostOS общедоступный IP-адрес. HostOS запустит брандмауэр (с iptables) и распределяет сетевой трафик по виртуальным машинам. Первоначально виртуальные машины будут полностью экранированы извне, поэтому в этой схеме не будет необходимости иметь полнофункциональный брандмауэр на любой из виртуальных машин. Кроме того, мне понадобится только 1 публичный IP-адрес. Я должен доплачивать за дополнительные IP-адреса, и у меня не может быть больше 5.

Я решил, что могу использовать обратный прокси на HostOS для распределения трафика между виртуальными машинами на основе запрошенных имен хостов.

У меня двоякий вопрос:

Я использую именно такую ​​архитектуру с Proxmox. Мостовая сеть не подходит, поскольку у меня недостаточно общедоступных IP-адресов для виртуальных машин. Я использую nginx в качестве виртуальных прокси-машин, вы можете настроить его непосредственно на хосте, но использование виртуальной машины тоже неплохая идея (постарайтесь сохранить как можно более простую конфигурацию хоста).

Единственный способ использовать мостовую сеть - иметь IP-адрес для каждой виртуальной машины, которая должна быть подключена к Интернету. Поскольку это означает, что вам нужно защищать каждую виртуальную машину отдельно, может быть проще использовать только один брандмауэр в вашей хост-системе. Для этого также есть хорошие руководства, если вы используете libvirt (https://jamielinux.com/docs/libvirt-networking-handbook/nat-based-network.html). По моему опыту (с nginx) заметного замедления работы с этим решением не наблюдалось. Я предполагаю, что HAproxy может быть еще быстрее.