ПРОЕКТЫ 


  АРХИВ 


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: Ограничение по количест ву соединений для несвои х



On Thu, Feb 02, 2012 at 12:33:21PM +0400, Maxim Dounin wrote:
> Hello!
> 
> On Thu, Feb 02, 2012 at 11:52:24AM +0400, Ilya Lobahin wrote:
> 
> > Здравствуйте, коллеги.
> > 
> > Хочется ограничить количество соединений на IP для всех, кроме некого,
> > избранного списка IP-адресов.
> > Вариантов реализации через nginx не нашел.
> > Это я плохо смотрел или так оно и есть.
> > 
> > P.S. Дятлы задолбали.
> 
> Как-то так должно работать:
> 
>     geo $white {
>         default         "0";
>         127.0.0.1       "1";
>         192.168.0.0/16  "1";
>     }
> 
>     map $white $limit_addr {
>         default  $binary_remote_addr;
>         "1"      "";
>     }
> 
>     limit_conn_zone  $limit_addr  zone=one:10m;
>     limit_conn one 5;
> 
> Смысл состоит в том, чтобы для "адресов из избранного списка" в 
> переменную, по которой установлено ограничение, попала пустая 
> строка.

Вот ещё один способ, кому-то он подойдёт больше.  Он раскидывает
клиентов по разным location'ам, в которых могут быть свои ограничения.

http {
    geo $config {
        default    slow;
        127.0.0.1  fast;
        10.0.0.0/8 fast;
    }

    limit_conn_zone $binary_remote_addr zone=addr:10m;

    server {
        location / {
            error_page 418 = @$config;
            return 418;
        }

        location @fast {
        }

        location @slow {
            limit_conn addr 1;
            limit_rate 100k;
        }
    }
}

P.S.  Спасибо Максиму Дунину за помощь в доведении этого конфига до
рабочего состояния.

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


 




Copyright © Lexa Software, 1996-2009.