при такой маршрутизации запросов возможно потребуется включить *log*_ *subrequest*
чт, 18 апр. 2019 г. в 16:53, Fedor Dikarev <f...@hamilton.rinet.ru>: > 18.04.2019 11:16, Oleg A. Mamontov пишет: > > On Wed, Apr 17, 2019 at 10:42:37PM +0300, Fedor Dikarev wrote: > >> Привет! > >> > >> Возникла задача rate_limit-итить обращения к api при помощи Nginx-а и > >> таким образом защититься от DDOS-а. > >> Авторизация к api идет через jwt, в ключе есть логин пользователя. > >> Поэтому я уже заказал demo nginx plus, планирую воспользоваться > >> функционалом jwt и rate limit-ить по логину, примерно так: > >>> auth_jwt_claim_set $login info login; > >>> limit_req_zone $login zone=one:10m rate=1r/s; > >> > >> а дальше хочется получить список нехороших логинов, через которые нас > >> пытаются досить. > >> Прочитал доку https://www.nginx.com/blog/rate-limiting-nginx/ -- там > >> написано что я получу адрес клиента, request и хостнейм в слуяае > >> превышения лимита. И это здорово. > >> А можно как-то получить значение ключа (в моем случае это логин > >> пользователя), который привысил rate limit? > >> > >> Пока есть гипотеза логгировать логин в access.log и потом > >> коррелировать access.log и error.log, но выглядит немного странно. И > >> вдруг можно получить результат сильно проще. > > > > Перехватить 503 с помощью error_page и обработать в специальном location > > с кастомизированным log_format ? > > Привет, Олег! > > Спасибо за совет: да, все просто и логично, я почему-то не подумал в эту > сторону. Сегодня-завтра попробуем поднять этот вариант на QA, > понагружаем немного и отпишусь о результатах. > -- > Fedor Dikarev > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru