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
|