ПРОЕКТЫ 


  АРХИВ 


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]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Торможение ботов через limit_req
  • From: Михаил Монашёв <postmaster@xxxxxxxxxxxxx>
  • Date: Sun, 13 Jan 2013 04:55:16 +0400
  • Dkim-signature: v=1; a=rsa-sha1; c=relaxed; d=softsearch.ru; h=date:from :reply-to:message-id:to:subject:mime-version:content-type :content-transfer-encoding; s=main; i=postmaster@xxxxxxxxxxxxx; bh=rlCsVhMNy38pobOB9TYv1y9Fm20=; b=Pbk6hgoU1BQFBUt28r+RsaMJHe4E VIutpAXt3n1/UZfv1w/l1Z49xnyPOrqeNSjqs09thpYYzZ7XOq2cNrYHxpO3A1UV 5WxEs8qhQWTBaiUytGisGtj8yvfq0vL2/msDItL5mjAXgdE/D19YR3UtUbHLfbGG H2thY6ikC+V8Flg=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=softsearch.ru; h=date:from :reply-to:message-id:to:subject:mime-version:content-type :content-transfer-encoding; q=dns; s=main; b=P5XbJaQvgXX/+LIpa3b caUFlwNQ4COCLz0GU+B0TWD+G/fLjxUnWfsDnxfU0H2UGV3pVxoIEbn5bI4QX47k uRNlffPF8KXaV2zwOfuIk9Aw/JojkuZd69exq7ivFCRtTH6lTtFGJLLtPTrgiNnL gCFrgkenw9RoaWJCsF4AtKn8=

Здравствуйте.

Захотелось тут ограничить количество запросов, приходящих от ботов.
Написал вот так:

        map $http_user_agent $rpm {
                default 999999;
                ~bot    1;
        }

        limit_req_zone $binary_remote_addr zone=one:10m rate=$rpm r/s;

Но оказалось: invalid number of arguments in "limit_req_zone" directive

Ошибку осознал. Переписал вот так:

        map $http_user_agent $ua_zone {
                default notbot;
                ~bot    bot;
        }

        limit_req_zone $http_user_agent zone=bot:10m rate=1r/s;
        limit_req_zone $http_user_agent zone=notbot:10m rate=999999r/s;
        limit_req zone=$ua_zone burst=120;

Выдало:unknown limit_req_zone "$ua_zone"

Пришлось пока применить старый, но не совсем мне подходящий способ:
if ($http_user_agent ~ "bot"){
    set $limit_rate  1000;
}

Подскажите   пожалуйста,  как  ограничить  количество  запросов  через
limit_req для юзерагентов, для которых матчится регэксп?

-- 
С уважением,
 Михаил                          mailto:postmaster@xxxxxxxxxxxxx

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.