apache с mod_accel можно было поставить на gw, отклонять фаерволом пакеты
идущие через внешний интерфейс на 127.0.0.1 и прописать
Listen 8100
<VirtualHost a.b.c.d:80>
AccelPass / http://a.b.c.d:8100/
</VirtualHost>
<VirtualHost a.b.c.e:8100>
AccelPass / http://a.b.c.e:8100/
</VirtualHost>
где a.b.c.d и a.b.c.e ip машин, стоящих за gw
и все работало, а в nginx
server {
listen a.b.c.d:8100;
location / {
proxy_pass http://a.b.c.d:8100/;
}
}
...
естественно не работает:
поскольку адрес a.b.c.d принадлежит другой машине.
Можно как-либо с помощью nginx организовать прозрачный прокси для нескольких
бэкендов, сидящих на разных физических машинах, но слушающих одни порты?
Можно сделать так:
server {
listen 8100;
listen a.b.c.d:8100;
...
}
server {
listen a.b.c.e:8100;
...
}
Тогда nginx, как и Апач, будет слушать на *:8100 и не будет пытаться
при'bind()иться к a.b.c.d:8100 и a.b.c.e:8100.
Игорь Сысоев
http://sysoev.ru