alibek Опубликовано 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? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AKim Опубликовано 20 декабря, 2013 · Жалоба регистрируете домен и всё будет работать, как хотите. главное чтобы внешний ip был статичным. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 20 декабря, 2013 · Жалоба А заземлять обязательно или не важно? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 20 декабря, 2013 · Жалоба А можно ли на самом NAT анализировать пришедший запрос и если это HTTP, то тогда в зависимости от заголовка Host транслировать на 192.168.1.1 или 192.168.1.2? На микротике можно через L7 фильтр сделать, правда ресурсов очень много придется затратить, если объем трафика большой. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 20 декабря, 2013 · Жалоба На микротике можно через L7 фильтр сделать А с каких пор он научился декодировать протокол HTTP? Если просто по содержанию, то это не подойдет, содержимое "Host: сервер1" может в разных местах встретиться. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 20 декабря, 2013 · Жалоба Образовалась хитрая задача, пока теоретическая. Ничего хитрого, обычная. хттп лоад балансинсинг гуглить. Решается с помощью нгинх или хапрокси (более производительно под линухом) или хз с помощью ещё чего, что жуёт хттп запросы. Оригинальный IP юзера дописывается в заголовки хттп. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 21 декабря, 2013 · Жалоба Решается с помощью нгинх или хапрокси Я так понимаю, что это нередкая задача для балансировки нагрузки. Но у меня нагрузки большой нет, есть просто два веб-сервера на разных машинах, которые должны работать на стандартном порту. Поэтому интересуюсь, можно это на уровне NAT разрулить? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dignity Опубликовано 21 декабря, 2013 · Жалоба Зачэм? Гланды через попу тоже можно вывернуть... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 21 декабря, 2013 · Жалоба Поэтому интересуюсь, можно это на уровне NAT разрулить? На L4 это сделать нельзя. Нужно нечто, понимающее http headers, например, nginx как было предложено выше Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
BiWiS Опубликовано 21 декабря, 2013 · Жалоба уже написали nginx или haproxy Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 21 декабря, 2013 · Жалоба Поэтому интересуюсь, можно это на уровне NAT разрулить? Можно, но лучше отдать это софтине. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...