Re: Неправильный remote addr

Никита Козлов niakrisn на gmail.com
Сб Авг 21 10:51:33 MSD 2010


Так вопрос был вроде не в том почему в $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 at sysoev.ru> написал:

> 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 at nginx.us> написал:
> >
> > > Имеется такой конфиг:
> > >
> > > #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 at nginx.org
> > > http://nginx.org/mailman/listinfo/nginx-ru
> > >
>
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://nginx.org/mailman/listinfo/nginx-ru
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100821/5b67e57e/attachment-0001.html>


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