alibek Posted December 20, 2013 Posted December 20, 2013 Образовалась хитрая задача, пока теоретическая. Есть локальная сеть, в ней два веб-сервера, например 192.168.1.1:80 (сервер1) и 192.168.1.2:80 (сервер2). Выход в интернет в локальной сети предоставляет маршрутизатор, через NAT. Маршрутизатор пока абстрактный, скорее всего это будет компактный сервер на линуксе или FreeBSD. Нужно опубликовать в интернете оба сервера, причем оба должны быть на 80 порту. И на одном IP-адресе, поскольку предоставляется только один. Пока я вижу только такой работоспособный вариант: в сети есть третий кеширующий веб-сервер (либо прокси-сервер), на который маршрутизатор переадресует все входящие HTTP-запросы. Веб-сервер проверяет заголовок Host и в зависимости от его значения передает запрос на сервер1 или сервер2. А можно ли на самом NAT анализировать пришедший запрос и если это HTTP, то тогда в зависимости от заголовка Host транслировать на 192.168.1.1 или 192.168.1.2? Вставить ник Quote
AKim Posted December 20, 2013 Posted December 20, 2013 регистрируете домен и всё будет работать, как хотите. главное чтобы внешний ip был статичным. Вставить ник Quote
alibek Posted December 20, 2013 Author Posted December 20, 2013 А заземлять обязательно или не важно? Вставить ник Quote
Saab95 Posted December 20, 2013 Posted December 20, 2013 А можно ли на самом NAT анализировать пришедший запрос и если это HTTP, то тогда в зависимости от заголовка Host транслировать на 192.168.1.1 или 192.168.1.2? На микротике можно через L7 фильтр сделать, правда ресурсов очень много придется затратить, если объем трафика большой. Вставить ник Quote
alibek Posted December 20, 2013 Author Posted December 20, 2013 На микротике можно через L7 фильтр сделать А с каких пор он научился декодировать протокол HTTP? Если просто по содержанию, то это не подойдет, содержимое "Host: сервер1" может в разных местах встретиться. Вставить ник Quote
Ivan_83 Posted December 20, 2013 Posted December 20, 2013 Образовалась хитрая задача, пока теоретическая. Ничего хитрого, обычная. хттп лоад балансинсинг гуглить. Решается с помощью нгинх или хапрокси (более производительно под линухом) или хз с помощью ещё чего, что жуёт хттп запросы. Оригинальный IP юзера дописывается в заголовки хттп. Вставить ник Quote
alibek Posted December 21, 2013 Author Posted December 21, 2013 Решается с помощью нгинх или хапрокси Я так понимаю, что это нередкая задача для балансировки нагрузки. Но у меня нагрузки большой нет, есть просто два веб-сервера на разных машинах, которые должны работать на стандартном порту. Поэтому интересуюсь, можно это на уровне NAT разрулить? Вставить ник Quote
dignity Posted December 21, 2013 Posted December 21, 2013 Зачэм? Гланды через попу тоже можно вывернуть... Вставить ник Quote
s.lobanov Posted December 21, 2013 Posted December 21, 2013 Поэтому интересуюсь, можно это на уровне NAT разрулить? На L4 это сделать нельзя. Нужно нечто, понимающее http headers, например, nginx как было предложено выше Вставить ник Quote
BiWiS Posted December 21, 2013 Posted December 21, 2013 уже написали nginx или haproxy Вставить ник Quote
Ivan_83 Posted December 21, 2013 Posted December 21, 2013 Поэтому интересуюсь, можно это на уровне NAT разрулить? Можно, но лучше отдать это софтине. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.