Re: Получить ключ limit_rate в логе rate_limit-а

2019-04-18 Пенетрантность Oleg A. Mamontov

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

2019-04-18 Пенетрантность Илья Шипицин
при такой маршрутизации запросов возможно потребуется включить *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-а

2019-04-18 Пенетрантность 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

Re: Получить ключ limit_rate в логе rate_limit-а

2019-04-18 Пенетрантность 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 ?

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