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

Андрей Василишин a.vasilishin на kpi.ua
Вс Янв 24 13:53:28 UTC 2016


24.01.2016 10:33, Pavel V. пишет:
> Здравствуйте, Андрей.
>
> Вы писали 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.


Она-то конечно не нужна, но вот для дебага таки нужна



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