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