<div dir="ltr">при такой маршрутизации запроÑов возможно потребуетÑÑ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ <span class="extended-text__short"><b>log</b>_<b>subrequest</b></span></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">чт, 18 апр. 2019 г. в 16:53, Fedor Dikarev <<a href="mailto:fe@hamilton.rinet.ru">fe@hamilton.rinet.ru</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">18.04.2019 11:16, Oleg A. Mamontov пишет:<br>
> On Wed, Apr 17, 2019 at 10:42:37PM +0300, Fedor Dikarev wrote:<br>
>> Привет!<br>
>><br>
>> Возникла задача rate_limit-итить Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ðº api при помощи Nginx-а и<br>
>> таким образом защититьÑÑ Ð¾Ñ‚ DDOS-а.<br>
>> ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ðº api идет через jwt, в ключе еÑть логин пользователÑ.<br>
>> ПоÑтому Ñ ÑƒÐ¶Ðµ заказал demo nginx plus, планирую воÑпользоватьÑÑ<br>
>> функционалом jwt и rate limit-ить по логину, примерно так:<br>
>>> auth_jwt_claim_set $login info login;<br>
>>> limit_req_zone $login zone=one:10m rate=1r/s;<br>
>><br>
>> а дальше хочетÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ ÑпиÑок нехороших логинов, через которые наÑ<br>
>> пытаютÑÑ Ð´Ð¾Ñить.<br>
>> Прочитал доку <a href="https://www.nginx.com/blog/rate-limiting-nginx/" rel="noreferrer" target="_blank">https://www.nginx.com/blog/rate-limiting-nginx/</a> -- там<br>
>> напиÑано что Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ñƒ Ð°Ð´Ñ€ÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°, request и хоÑтнейм в ÑлуÑае<br>
>> Ð¿Ñ€ÐµÐ²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð»Ð¸Ð¼Ð¸Ñ‚Ð°. И Ñто здорово.<br>
>> Рможно как-то получить значение ключа (в моем Ñлучае Ñто логин<br>
>> пользователÑ), который привыÑил rate limit?<br>
>><br>
>> Пока еÑть гипотеза логгировать логин в access.log и потом<br>
>> коррелировать access.log и error.log, но выглÑдит немного Ñтранно. И<br>
>> вдруг можно получить результат Ñильно проще.<br>
> <br>
> Перехватить 503 Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ error_page и обработать в Ñпециальном location<br>
> Ñ ÐºÐ°Ñтомизированным log_format ?<br>
<br>
Привет, Олег!<br>
<br>
СпаÑибо за Ñовет: да, вÑе проÑто и логично, Ñ Ð¿Ð¾Ñ‡ÐµÐ¼Ñƒ-то не подумал в Ñту<br>
Ñторону. СегоднÑ-завтра попробуем поднÑть Ñтот вариант на QA,<br>
понагружаем немного и отпишуÑÑŒ о результатах.<br>
--<br>
Fedor Dikarev<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>