ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: проблема с прозрач ным прокси



On Tue, 1 Mar 2005, Borisenko Ivan wrote:

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/;
                   }
        }
...
естественно не работает:
2005/03/01 21:09:40 [emerg] 33856#0: bind() to a.b.c.d:8100 failed (49: Can't assign requested address)
поскольку адрес 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




 




Copyright © Lexa Software, 1996-2009.