Re: Получить ключ limit_rate в логе rate_limit-а
On Thu, Apr 18, 2019 at 04:59:10PM +0500, Илья Шипицин wrote: при такой маршрутизации запросов возможно потребуется включить *log*_ *subrequest* Да нет, не потребуется. чт, 18 апр. 2019 г. в 16:53, Fedor Dikarev : 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 -- Cheers, Oleg A. Mamontov ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Получить ключ limit_rate в логе rate_limit-а
при такой маршрутизации запросов возможно потребуется включить *log*_ *subrequest* чт, 18 апр. 2019 г. в 16:53, Fedor Dikarev : > 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
Re: Получить ключ limit_rate в логе rate_limit-а
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
Re: Получить ключ limit_rate в логе rate_limit-а
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