Я еще не испытал это, но я был планированием использования LVS в Виртуальном частном облаке. Можно создать частную подсеть с этой функцией Amazon и поместить все виртуальные машины на ту же подсеть. Я не уверен, работал ли DR LVS (Amazon не могли бы понравиться реальные серверы, имитирующие назад клиенту с IP подсистемы балансировки нагрузки), но NAT LVS (masq) имеет хороший шанс работы.
Мое самое большое беспокойство будет добавленная задержка, потому что подсеть Виртуального частного облака могла бы добавить еще больше транзитных участков, чем нормальный. Этого избежали бы с Nginx.
Я действительно успешно устанавливал NAT LVS (masq) в сочетании с openVPN для создавания видимости частной сети единственной подсети, но это не работало хорошо.
Если Вам удается дать этому выстрел, прежде чем я сделаю, я хотел бы услышать Ваш результат.
Возможно, вы могли бы использовать mod_headers вместе с mod_proxy. Я не тестировал его.
Итак, для vhost вашего app-dev вы могли бы иметь:
RequestHeader set Host "app.internal.domain"
, а затем добавить:
ProxyPreserveHost On
Уродливое решение - используйте (скорее: злоупотребляйте) / etc / hosts, чтобы указать app.internal.domain на localhost, а затем настройте Apache для прослушивания двух дополнительных портов, по одному для каждого вашего приложения и app-dev. Итак, дважды выполните обратный прокси-сервер:
Listen 80
Listen 127.0.0.1:8001
Listen 127.0.0.1:8001
<VirtualHost *:80>
ServerName app.proxy.domain
ProxyPass / http://app.internal.domain:8001
</VirtualHost>
<VirtualHost *:80>
ServerName app-dev.proxy.domain
ProxyPass / http://app.internal.domain:8002
</VirtualHost>
<VirtualHost 127.0.0.1:8001>
ServerName app.internal.domain
ProxyPreserveHost On
ProxyPass / http://10.0.1.1/
</VirtualHost>
<VirtualHost 127.0.0.1:8002>
ServerName app.internal.domain
ProxyPreserveHost On
ProxyPass / http://10.0.1.2/
</VirtualHost>
Add to reverse proxy's config (foe app-dev.proxy..):
RequestHeader edit Host ^app-dev.proxy.domain app.proxy.domain
You have to enable mod_headers beforehand:
a2enmod headers
Internal server 10.0.1.2 should has
ServerName app.proxy.domain