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

Igor Sysoev igor на sysoev.ru
Сб Авг 21 10:38:18 MSD 2010


On Sat, Aug 21, 2010 at 01:05:27AM -0400, zdm wrote:

> Имеется такой конфиг:
> 
> #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).
> Разве при проксируемый запрос не
> должен отправляться с того-же адреса,
> на который пришел клиентский запрос?

Разумеется, не должен.
http://sysoev.ru/nginx/docs/http/ngx_http_realip_module.html


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



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