Как пробросить 80 порт внутрь сети на несколько компов в зависимости от URL (host header'а запрса)?
Shlag 30 октября, 2007 - 01:02
Подскажите, а есть ли возможность, используя IPTABLES пробросить 80 порт внутрь сети на несколько компов в зависимости от URL (host header'а запрса)?
Например, есть сеть 192.168.0.0/24 с шлюзом(NAT) в интернет 192.168.0.1. За фаерволом есть два веб сервера на разных машинах с именами myapache.ru (192.168.0.2) и damnediis.com (192.168.0.3). Нужно, чтобы входящий http запрос, приходящий на шлюз из интернета к myapache.ru передавался на 192.168.0.2, а к damnediis.com на 192.168.0.3.
Понимаю, что iptables не обязан читать заголовки протоколов высокого уровня, но тем не менее, есть же возможность передать пакет для обработки в юзерспейс (QUEUE).
Никто не знает подходящего решения?
»
- Для комментирования войдите или зарегистрируйтесь
имхо тебе нужен
имхо тебе нужен фронтенд http сервер, который будет пробрасывать на нужный бакенд запросы.
фронтенд http сервер
Да, видимо, так.
И реально юникс-вэй получается :)
А то вон что M$ из обычного прокси и ната сделало -> ISA говорят :)
Поставь apache с
Поставь apache с поддержкой mod_rewrite и разруливай по url на virtual ip, в зависимости от ip ремапь iptables`ом
Два решения.
Два решения. Возможно, можно придумать и больше...
1. На шлюз поставить 2 внешних ip адреса. Каждому из доменов присвоить свой внешний ip. В зависимости от того, на какой ip идет запрос, на тот ip и перекидывать.
2. На шлюзе поставить apache. Все запросы при помощи mod_rewrite для damnediis.com перекидывать на amnediis.com:81, а для myapache.ru на myapache.ru:82, ну и соответственно, перекидывать 81 порт на 80 одного сервера и 82 на 80 второго.
Всякие там squid,
Всякие там squid, ngnix в режиме аккселератора http такое тоже умеют.
А вообще с помощью l7filter теоретически можно только с помощью iptables разрулить. Правда практически могут возникнуть проблемы... хотя вроде так в теории если для l7filter создать свои правила для каждого хоста regexp на строку Host:.... и по этим правилам помечать CONNMARK, а дальше уже по этим меткам делать DNAT то может получится
iptables->redirect
iptables->redirect
И при чем здесь
И при чем здесь цель redirect? Ты вопроса не понял.