ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Торможение ботов через limit_req



On Sunday 13 January 2013 13:02:26 Михаил Монашёв wrote:
> Здравствуйте, Валентин.
> 
> >> Подскажите  пожалуйста,  как  ограничить  количество запросов через
> >> limit_req для юзерагентов, для которых матчится регэксп?
> >> 
> >         map $http_user_agent $bot_ua {
> >         
> >                 ~bot    bot;
> >         
> >         }
> >         
> >         limit_req_zone $bot_ua zone=bot:10m rate=1r/s;
> >         
> >         limit_req zone=bot burst=120;
> 
> А можно сюда как-то приделать, чтобы ограничение работало для запросов
> от ботов, которые проксируются?
> 

Указать limit_req в location с proxy_pass.

Но надо учитывать, что proxy-модуль работает уже после, поэтому если запрос 
будет отдан из кэша, то об этом становится известно уже только после того,
как отработал limit_req.

[...]
> 
> limit_req,  как  я  понял,  работает  так:  все  запросы ниже скорости
> rate=1r/s обслуживаются нормально, от rate=1r/s, но не более burst=120
> в  очереди, тормозятся. А если очередь превышается, то выдаётся 503. Я
> правильно понял?

Приблизительно. Точное описание алгоритма есть на википедии:
http://en.wikipedia.org/wiki/Leaky_bucket

--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.