Re: Proxy_pass через другой интерфейс

Maxim Dounin mdounin на mdounin.ru
Сб Авг 6 16:10:24 UTC 2011


Hello!

On Sat, Aug 06, 2011 at 07:57:13PM +0400, Maxim Dounin wrote:

> Hello!
> 
> On Sat, Aug 06, 2011 at 07:44:54PM +0400, Антон Исайкин wrote:
> 
> > Добрый день.
> > 
> > Подскажите пожалуйста, можно ли заставить nginx проксировать запрос
> > через другой интерфейс? Я имею ввиду аналог опции --interface у cURL.
> > 
> > Т.е. например, на сервер забиндили 2 IP адреса: 1.1.1.1 и 2.2.2.2.
> > Первый из них дефолтный и если в директиву proxy_pass указать
> > какой-либо внешний URL, то запрос отправится по интерфейсу 1.1.1.1.
> > Есть ли возможность отправить отправить запрос через второй интерфейс?
> > Можно ли менять интерфейс динамически?
> 
> http://wiki.nginx.org/HttpProxyModule#proxy_bind

И в догонку:

Если говорить об ip-адресах, то это полный аналог curl 
--interface.  Но надо понимать, что пакеты при этом пойдут не 
через конкретный интерфейс (интерфейс != ip-адрес), а как решит 
система.

Если говорить именно об интерфейсах, то при использовании "curl 
--interface eth1" (т.е. именно имени интерфейса, а не ip-адреса) 
на linux'е curl делает setsockopt(SO_BINDTODEVICE), что 
обеспечивает отправку пакетов через конкретный интерфейс, даже 
если у системы другие представления по этому вопросу.  Такого 
nginx не делает.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru