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