ПРОЕКТЫ 


  АРХИВ 


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 и x_forwarded_for


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: фокусы с заголовками - remote_addr и x_forwarded_for
  • From: drmarker <drmarker@xxxxxxxxx>
  • Date: Thu, 1 Jun 2006 22:19:18 +0400
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=N3Ehf5k8ztiBTbzxEjwtpw7HADNIasGiLcESa9/9xor3Efom3ZT7xJR9prJKH8YQJatUz/+ObBU1kdPSS6iK/eWx0+Hg7EzD5jZfc9DXZF4GSvG6moH+JiB3T5Igb5ukyQkhWyxsF7YgblEMhBGm/1PQ8qq7BmwJJaoA0n76ND4=
  • In-reply-to: <1468288799.20060601202213@xxxxxxxx>
  • References: <1468288799.20060601202213@xxxxxxxx>

http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#variables

$proxy_add_x_forwarded_for, эта переменная равна строке заголовка
запроса клиента "X-Forwarded-For" и добавленной к ней через запятую
переменной $remote_addr. Если же строки "X-Forwarded-For" в запросе
клиента нет, то переменная $proxy_add_x_forwarded_for равна переменной
$remote_addr.

On 6/1/06, Nadorvir <admin@xxxxxxxx> wrote:
Приветствую ALL.

Имеем конфиг nginx`a:
  location  / {
            proxy_pass   http://127.0.0.1:80/;
            proxy_set_header  X-Forwarded-For   $remote_addr;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_redirect   http://127.0.0.1:80/    http://$host:$server_port/;
            proxy_set_header  Host        $host;
        }
на бекэнде весит апач 2.2
скрипт видит remote_addr который равен $remote_addr в nginx`е. т.е.
видно реально откуда к нам пришли, но при этом мы теряем X-Forwarded-for в 
случае
если он задан клиентом. всё что видит Nginx в заголовке
X-Forwarder-for он пишет в remote_addr для бэкенда.

если убрать строчку
            proxy_set_header  X-Forwarded-For   $remote_addr;
то в заголовках remote_addr становится равен 127.0.0.1 - клиентом
становится Nginx.
так вот, каким образом можно не портя заголовки сделать нормальную передачу
remote_addr и X-Forwarded-For клиента на бекэнд?



--
С уважением,
 Nadorvir                          mailto:admin@xxxxxxxx





 




Copyright © Lexa Software, 1996-2009.