ПРОЕКТЫ 


  АРХИВ 


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 не для ? ?сех



Igor Sysoev Пишет:
-------------------------------------------------------
> 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

Второй вариант наверно удобнее, для белого списка выключаем просто действия 
всех директив limit_req на данном уровне конфига.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,16855,16867#msg-16867




 




Copyright © Lexa Software, 1996-2009.