<div dir="ltr">Раз уж зашел разговор о realip....<div><br></div><div>Максим, а возможно ли указать 2 заголовка realip_header ?</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-06-19 14:15 GMT+02:00 Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<span class=""><br>
On Sun, Jun 18, 2017 at 07:31:05AM +0300, Иван wrote:<br>
<br>
> Здравствуйте!<br>
><br>
> В конструкции<br>
><br>
> location /login/<br>
>       set_real_ip_from proxy_IP;<br>
>       if ($block_agent) {<br>
>               return 403;<br>
>     }<br>
> }<br>
><br>
> Всё, что попадает в блок if ($block_agent == 1), в логи пишется с $remote_addr<br>
> проксирующего сервера (proxy_IP), то есть set_real_ip_from не отрабатывает.<br>
> set_real_ip_from поместить в блок include nginx не дает. Пока что решил<br>
> проблему меняя формат логов для в блоке if, но что это, баг\фича? И можно ли<br>
> исправить?<br>
<br>
</span>Это фича.  Если директива set_real_ip_from задана на уровне<br>
location, то замена адреса происходит после выбора конфигурации, в<br>
котором будет обрабатываться запрос, перед работой модулей контроля<br>
доступа.  А в конфигурации выше - ошибка возвращается с помощью<br>
директив модуля rewrite, на этапе "выбора конфигурации по<br>
условию" (см. <a href="http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html" rel="noreferrer" target="_blank">http://nginx.org/ru/docs/http/<wbr>ngx_http_rewrite_module.html</a>).<br>
В результате ошибка 403 случается до того, как адрес клиента<br>
заменён модулем realip, и в логи попадает исходный ip.<br>
<br>
Чтобы подобных сюрпризов не было - правильнее всего задать<br>
set_real_ip_from на уровне server, тогда замена ip-адреса клиента<br>
будет происходить сразу после чтения запроса.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" rel="noreferrer" target="_blank">http://nginx.org/</a><br>
</font></span><div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx-ru</a></div></div></blockquote></div><br></div>