On Mon, Oct 26, 2009 at 06:16:19AM -0400, webscripter wrote:
> Хочу ограничить кол-во сессий в секунду, но не для всех адресов. Есть список белых заданных с помощью директивы geo через переменную $white. А как ее подставить в конфиг для location / пока не понял. Помогите плиз.
Пока никак. У меня был идея сделать как-то так:
limit_req_zone $... zone=BOTS:10m rate=1r/s;
limit_req_zone $... zone=GOOD:10m rate=5r/s;
geo $limit {
default 1;
# while list
192.168.1.0/24 0;
192.168.10.0/24 0;
}
server {
limit_req zone=BOTS burst=1 if $limit;
limit_req zone=GOOD burst=20 if $limit;
limit_req off;
или
geo $while {
default 0;
192.168.1.0/24 1;
192.168.10.0/24 1;
}
server {
limit_req off if $white;
limit_req zone=GOOD burst=20;
limit_req zone=BOTS burst=1;
Но тут есть вопросы - как должны срабатывать правила: по первому
соотвествию if или нет. Если есть несколько правил без if - проверять
все или нет ?
--
Игорь Сысоев
http://sysoev.ru