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 ?
--
Cheers,
Oleg A. Mamontov
mailto: o...@mamontov.net
skype: lonerr11
cell: +7 (903) 798-1352
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru