ПРОЕКТЫ 


  АРХИВ 


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



 




Copyright © Lexa Software, 1996-2009.