2 IP и mod_proxy

BC
На сайте с 10.03.2013
Offline
1
643

Здравствуйте!

Есть сервер, на нем 2 IP (eth0, eth0:1) предположим A и B. Apache позволяет создать 2 VirtualHostа, а для каждого из них забиндить A и B. Но проблема заключается в том, если использовать на B mod_proxy, то трафик все равно идет через А (видимо mod_proxy не умеет определять IP того VirtualHosta, с которым идет работа).

В идеале должно быть так:

- Заходим на IP A -> mod_proxy -> обмен пакетами идет через A.

- Заходим на IP B -> mod_proxy -> обмен пакетами идет через B.

В реальности так:

- Заходим на IP A -> mod_proxy -> обмен пакетами идет через A.

- Заходим на IP B -> mod_proxy -> обмен пакетами идет через А.

Варианты решения:

1) Копаться в исходниках mod_proxy - нужно много времени, а с ним напряг да и не факт что получится.

2) Попробовать через iptables (но с ним я не особо знаком) задать IP, через который должен идти трафик, примерно так:

iptables -A POSTROUTING -m owner --uid-owner httpd -j SNAT --to-source 66.249.90.104-66.249.90.108

Но дело в том, что A и B разные IP и пулом их задать нельзя. А по отдельности - правило не работает.

Вообщем, если кто сможет помочь с этой проблему, буду крайне рад.

ПО сервера

CentOS 6

Linux srv759 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Server version: Apache/2.4.4 (Unix)

Server built: Mar 10 2013 02:34:32

P
На сайте с 16.03.2009
Offline
144
#1

Попробуйте проксировать с помощью NGINX

BC
На сайте с 10.03.2013
Offline
1
#2
poiuty:
Попробуйте проксировать с помощью NGINX

Вариант, но хотелось бы без него обойтись.

BC
На сайте с 10.03.2013
Offline
1
#3

Знатоки iptables, подскажите, возможно можно как-то задать не пул последовательных IP, а только определенные, что-то подобное этому:

iptables -A POSTROUTING -m owner --uid-owner httpd -j SNAT --to-source 66.249.90.104, 66.249.90.108

?

AA
На сайте с 11.03.2013
Offline
0
#4

надо делать через source routing. пример:

#eth0

ip route add default via $Pgw_eth0} table 101

ip rule add from ${ip_eth0} table 101

#eth1

ip route add default via ${gw_eth1} table 102

ip rule add from ${ip_eth1} table 102

или через конфиги:

cat /etc/sysconfig/network-scripts/rule-ethX

from ${ip_ethX} table 101

cat /etc/sysconfig/network-scripts/route-ethX

default via ${gw_ethX} table 101

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий