LINUX.ORG.RU
решено ФорумAdmin

Разрулить проброс порта 80

 ,


0

2
iptables -t nat -A PREROUTING -p tcp -d 93.158.134.3 --dport 80 -j DNAT --to-destination 192.168.206.7:80
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.206.7 --dport 80 -j SNAT --to-source 93.158.134.3

Схематично так

93.158.134.3:80 -> 192.168.206.7:80

Задача: При существовании всего вышесказанного, сделать возможным проброс этого же порта на другой локальный ip

93.158.134.3:80 -> 192.168.206.7:80
93.158.134.3:80 -> 192.168.206.8:80

Какие приемлемые варианты могут быть? Оба сервера apache2.

★★★★★

а почему бы не поставить nginx на внешнюю сторону и им уже разруливать конкретно что и где спросить у серваков из локалки?

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

а почему бы не поставить nginx на внешнюю сторону и им уже не разруливать конкретно что и где спросить у серваков из локалки?

Стало очевидно, когда «опубликовать» нажал. Ткните в место в manual, где описан функционал, который поднять необходимо.

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

Думаю можно примерно так:

iptables -t mangle -N sort_www_connect
iptables -t mangle -A INPUT -p tcp -m tcp -d 93.158.134.3 --dport 80 -m conntrack --ctstate NEW -j sort_www_connect
iptables -t mangle -A sort_www_connect -j CONNMARK --set-xmark 0x1/0xffffffff
iptables -t mangle -A sort_www_connect -m statistic --mode nth --every 2 --packet 1 -j RETURN
iptables -t mangle -A sort_lwww_connect -j CONNMARK --set-xmark 0x2/0xffffffff


iptables -t nat -A INTPUT -m connmark --mark 0x2 -j DNAT --to-destination 192.168.206.7
iptables -t nat -A INTPUT -m connmark --mark 0x1 -j DNAT --to-destination 192.168.206.8

ЗЫ: 100% за синтаксис не ручаюсь, но идея думаю понятна

ЗЫЗЫ: это я «адаптировал» со своей «балансировки» исходящих коннектов

Sigizmund ()
Ответ на: комментарий от petav

По каким критериям iptables отправит web запрос на тот или иной ресурс. Для этого необходимо анализировать http head вычленять имя сайта и от этого принимать решение. Схема не сработает.

petav ★★★★★ ()

С apache2 (на который брошен внешний порт) создал виртуальный хост и проксирую запросы на второй сервер apache2.

Включил поддержку прокси

a2enmod proxy
a2enmod proxy_http

Разметил виртуальный хост

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName redmine.unit.local
        ServerAlias redmine.unit.ru
        ServerAlias redmine.unit.com

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        ProxyRequests Off
        ProxyPreserveHost On
        ProxyVia full

        <proxy *>
            Order deny,allow
            Allow from all
        </proxy>

        ProxyPass / http://192.168.88.8/
        ProxyPassReverse / http://192.168.88.8/

</VirtualHost>

Будет мешать оптимизирую используя ngnix.

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