ПРОЕКТЫ 


  АРХИВ 


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: Неправильный remote addr



Так вопрос был вроде не в том почему в $remote_addr нет реального IP клиента, а в том почему переменная всегда содержит 78.159.118.162.

Клиентский запрос приходит на 78.159.118.168, а и ожидается, что на проксируемый сервер запрос придет с 78.159.118.168, но приходит с 78.159.118.162.

21 августа 2010 г. 10:39 пользователь Igor Sysoev <igor@xxxxxxxxx> написал:
On Sat, Aug 21, 2010 at 10:13:57AM +0400, Никита Козлов wrote:

> Нет, если на сетевом интерфейсе более одного IP, то исходящий адрес ОС будет
> выбирать по некоторому алгоритму и обычно это самый первый IP на этом
> интерфейсе.
>
> В 0.8.22+ есть proxy_bind, fastcgi_bind и memcached_bind которые позволяют
> выставить исходящий IP для проксируемых запросов.

Но поставить туда адрес клиента принципиально невозможно.

> 21 августа 2010 г. 9:05 пользователь zdm <nginx-forum@xxxxxxxx> написал:
>
> > Имеется такой конфиг:
> >
> > #SERVER_1
> > server {
> >        listen                   78.159.118.168:81;
> >        listen                   78.159.118.162:81;
> >        listen                   78.159.118.162:80;
> >
> >        location / {
> >            proxy_pass             http://78.159.118.162:8080;
> >            proxy_set_header  X-Real-IP                $remote_addr;
> >            proxy_set_header  X-Forwarded-For
> > $proxy_add_x_forwarded_for;
> >        }
> > }
> >
> > #SERVER_2
> > server {
> >    listen                   78.159.118.162:8080;
> >
> >    location / {
> >        fastcgi_pass     unix:/tmp/fcgi.sock;
> >        fastcgi_param  QUERY_STRING          $query_string;
> >        fastcgi_param  REQUEST_METHOD        $request_method;
> >        fastcgi_param  CONTENT_TYPE          $content_type;
> >        fastcgi_param  CONTENT_LENGTH        $content_length;
> >        fastcgi_param  HTTP_X_REAL_IP        $http_x_real_ip;
> >        fastcgi_param  HTTP_X_FORWARDED_FOR
> > $proxy_add_x_forwarded_for;
> >        fastcgi_param  PATH_INFO             $uri;
> >    }
> > }
> >
> >
> > Клиентские запросы приходят на SERVER_1, он
> > проксирует их на SERVER_2, а тот, в свою
> > очередь, на FCGI приложение.
> > Проблема:
> > Значение переменной $remote_addr в конфиге
> > SERVER_2 всегда равно 78.159.118.162, не зависимо
> > от того, на какой ip пришел клиентский
> > запрос на SERVER_1 (на 78.159.118.162 или на
> > 78.159.118.168).
> > Разве при проксируемый запрос не
> > должен отправляться с того-же адреса,
> > на который пришел клиентский запрос?
> >
> > Posted at Nginx Forum:
> > http://forum.nginx.org/read.php?21,121999,121999#msg-121999
> >
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru@xxxxxxxxx
> > http://nginx.org/mailman/listinfo/nginx-ru
> >

> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru


--
Игорь Сысоев
http://sysoev.ru

_______________________________________________

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.