Сценарий, который я имею в виду, заключается в том, чтобы как-то задействовать третью виртуальную машину, которая будет получать запросы 80/443 из внешнего мира и перенаправлять их соответственно на виртуальные машины.
Вы определенно смотрите на это правильно. Лично я бы использовал что-то вроде HAProxy для достижения вашей цели. Фактическая реализация будет зависеть от ваших потребностей / среды.
Простейшей формой будет использование другого набора портов для одного сервера (например, 1080/1443) и перенаправление трафика соответственно. Это можно сделать практически на любом прокси-сервере или маршрутизаторе / шлюзе NAT.
Используя HAProxy или подобное программное обеспечение, вы можете получить все, что захотите. Некоторые примеры того, как вы можете назначить трафик для перехода на один или другой сервер:
- URL-адрес, используемый в запросе (например, запросы на /app1 / что-либо идут на сервер 1, по умолчанию на сервер 2)
- Исходный IP делает запрос
- Тип запрашиваемого файла (все запросы для файлов .php отправляются на сервер 2)
- Пользовательский агент, выполняющий запрос (весь трафик iPhone идет на сервер 2)
- Практически любой другой аспект заголовков, которые вы хотите использовать
- Сочетание любого или всего вышеперечисленного
Существует множество статей и руководств по использованию HAProxy для многих вещей (в том числе здесь на нескольких сайтах SE ). Например, вот простой пост о маршрутизации трафика на основе URL. Или пример ServerFault , основанный на исходном IP. Google будет вашим другом, когда вы найдете примеры того, что вы можете сделать.
Я предлагаю проверить документацию на все, что вы можете сделать.