Как сделать доступ к двум виртуальным хостам на разных серверах с использованием одного публичного IP?
Всем привет!
Задача, сложность которой для меня пока неподъёмна. Поэтому обращаюсь к гуру этого форума.
Имеется два виртуальных сервера во внутренней сети с Apache на борту и сайтами, доступными на порту 80 и 443, а также один внешний ip-адрес. Краткая схема сети такая:
1. Сервер DNS у провайдера с A-записями:
site1.example.com -> 80.30.40.50
site2.example.com -> 80.30.40.50
2. Локальный роутер с доступом в инет и виртуальным портом, к которому приписан публичный ip-адрес (80.30.40.50) -> свитч -> виртуальный хост-1 (192.168.0.1) с Apache (порты 80, 443) + виртуальный хост-2 (192.168.0.2) с Apache (порты 80, 443).
Есть ли возможность настроить это все таким образом, чтобы при обращении к site1.example.com запрос перенаправлялся на хост-1, а при обращении к site2.example.com запрос перенаправлялся на хост-2 без замены стандартных портов на хостах?
к сожалению нет промежуточного сервера, на котором это можно реализовать, да и знаний необходимых тоже ☹️ есть ссылка на вменяемую инструкцию, как запасной вариант?
Вячеслав Гранченко, знаний там особо много ненадо. ну или есть фриланс.
промежуточный сервер не требуется, можете использовать любой из ваших виртуальных. через него пойдет трафик и до 2го
Чем больше знаю, тем лучше понимаю, как мало знаю.
С помощью Nginx - запросто!
Весь трафик летит на хост1, оттуда Nginx-ом трафик для site2 методом reverse proxy направляется на хост2. На хост1 будет двойная нагрузка, зато работает.
P.S. Если роутер понимает SNI - то можно попытаться на нём, но это очень вряд ли.
Вячеслав Гранченко, заменяете Apache на Nginx - и ни каких дополнительных серверов не понадобится.
P.S. Ну или пересаживаете Apache исключительно на 192.168.0.x. И ставите Nginx, который как раз и будет слушать стандартные порты на белом IP, и работать как reverse proxy на два ваших Apache сервера.