LINUX.ORG.RU

Два WEB сервера за NAT-ом

 ,


0

3

Доброго времени суток дамы и господа!

Есть вопрос.
Имеется роутер на Убунте, за ним и за натом, в локальной сети, находятся два Web сервера с разными локальными IP.
Соответственно попасть на оба этих сервера обычным способом не получается, так как внешний IP один и NAT переадресует трафик только на один из этих серверов.
Хотелось бы узнать, есть ли какой-нибудь способ чтобы оба эти сервера отвечали с одного внешнего IP, ну там селекция по URL или какая-нибудь программа на роутере будет селекцией заниматься.
Можно конечно сервера селектировать по портам, одному оставить 80, а другому сделать скажем 81 порт, и NAT-ом уже раскидывать, но лучше сделать так чтобы внешний пользователь даже не знал что сервера два.


арендуй VDS за 90 рублей, пробрось ssh тоннель на 80 порт

ssh -R 80:localhost:80 root@vds

и по IP вдски будет доступен твой локальный веб-сервер, с которого этот тоннель был проброшен.

ещё лучше будет поднять nginx на VDS с модулем realip, и настроить upstream на всё тот-же localhost:80, чтобы иметь возможность видеть настоящие IP клиентов.

Spoofing ★★★★★
()

или какая-нибудь программа на роутере будет селекцией заниматься

Любой load balancer. Но насколько тебе подойдут поддерживаемые алгоритмы - это вопрос. По url любой http-шный наверное умеет.

cppsektant
()

так как внешний IP один и NAT переадресует трафик только на один из этих серверов.

NAT обычно не используется для соединений снаружи, и они настраиваются отдельно. Покажи действующие правила, только не забудь оформить. Правда, я не очень в них разбираюсь.

На *wrt роутерах оформляется отдельными правилами через штатную конфигурацию или iptables.

селекция по URL

Можно и так. Это базовая функциональность front-end|reverse proxy. Тот же nginx или squid, но есть и ПО минималистичней.

boowai ★★★★
()
Последнее исправление: boowai (всего исправлений: 3)

есть ли какой-нибудь способ чтобы оба эти сервера отвечали с одного внешнего IP, ну там селекция по URL

Так это же ты сам и решаешь.

У тебя так и так два веб-сервера, делаешь проброс 80 и 443 на один из них, который удобнее, и на нём, как сказали выше, ревер-прокси по одному url на локалхост, по второму url на соседний веб-сервер.

vvn_black ★★★★★
()
Ответ на: комментарий от Spoofing

арендуй VDS

Ради второго ip? Один же уже есть.

Можно тогда заплатить за antiDDoS или облачный front-end. Какой-то cloud, вроде, и на onion может перенаправлять.

boowai ★★★★
()
Последнее исправление: boowai (всего исправлений: 2)
Ответ на: комментарий от Spoofing

ssh -R 80:localhost:80 root@vds

и по IP вдски будет доступен твой локальный веб-сервер, с которого этот тоннель был проброшен.

ещё лучше будет поднять nginx на VDS с модулем realip, и настроить upstream на всё тот-же localhost:80, чтобы иметь возможность видеть настоящие IP клиентов.

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

Любой load balancer. Но насколько тебе подойдут поддерживаемые алгоритмы - это вопрос. По url любой http-шный наверное умеет.

Сервера разные, так что не думаю что балансер подойдёт.

У тебя так и так два веб-сервера, делаешь проброс 80 и 443 на один из них, который удобнее, и на нём, как сказали выше, ревер-прокси по одному url на локалхост, по второму url на соседний веб-сервер.

Можно и так. Это базовая функциональность front-end|reverse proxy. Тот же nginx или squid, но есть и ПО минималистичней.

Ага, ясненько, сейчас почитаем что это такое как и с чем это едят.
Всем спасибо.

Uranus
() автор топика
Ответ на: комментарий от Uranus

Любой load balancer. Но насколько тебе подойдут поддерживаемые алгоритмы - это вопрос. По url любой http-шный наверное умеет.

Сервера разные, так что не думаю что балансер подойдёт.

Думаю, какой-нибудь traefik с этим легко справится.

dzd
()

Ну что же, ещё раз всем Спасибо, настроил всё через обратный проксик, благодарю за подсказки!

Uranus
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.