Re: $realip_remote_addr выдает айпи прокси а не клиента

Pavel V. pavel2000 на ngs.ru
Вс Янв 24 08:33:04 UTC 2016


Здравствуйте, Андрей.

Вы писали 24 января 2016 г., 4:45:36:


> В конфиге прописано:

> real_ip_header X-Forwarded-For;
> real_ip_recursive on;
> set_real_ip_from 94.23.0.0/16;

>              proxy_set_header   X-Real-IP        $realip_remote_addr;
>              proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;


> На бэкнде получаю в X_REAL_IP айпи прокси а не клиента:

>      [HTTP_X_REAL_IP] => 94.23.156.246
>      [HTTP_X_FORWARDED_FOR] => 176.104.49.220, 94.23.156.246
>      [REMOTE_ADDR] => 94.23.156.246

> Кто виноват и что делать?

Всё работает так, как вы указали в конфигурации.

Цитирую http://nginx.org/ru/docs/http/ngx_http_realip_module.html :

$realip_remote_addr -  хранит исходный адрес клиента (1.9.7)

В данном случае клиентом является то, что соединилось с nginx, т.е. прокси.

Вам следует использовать переменную $remote_addr:

proxy_set_header X-Real-IP $remote_addr;

Возможно также, что директива "proxy_set_header   X-Forwarded-For .... " совсем не нужна,
чаще всего это наследие копипаста. Для получения IP реального клиента достаточно X-Real-IP.


-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru



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