Привет!

Возникла задача 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, но выглядит немного странно. И вдруг можно получить результат сильно проще.
--
Fedor Dikarev
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить