Re[2]: Ограничение по количеству соединений для несвоих

Ilya Lobahin i.lobahin на nikitaonline.ru
Чт Фев 2 09:37:08 UTC 2012


Здравствуйте, Maxim.

Вы писали 2 февраля 2012 г., 12:33:21:

>> Хочется ограничить количество соединений на 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;

> Смысл состоит в том, чтобы для "адресов из избранного списка" в 
> переменную, по которой установлено ограничение, попала пустая 
> строка.

> (Note: синтаксис для 1.1.8+, в старых версиях вместо 
> limit_conn_zone следует писать limit_zone со старым же 
> синтаксисом.  Подробнее в документации.)

Спасибо, за вариант решения.
Но че-то он у меня не совсем работает.
------------http-----------
    geo $whitelist {
        default "0";
        127.0.0.1 "1";
    }
    map $whitelist $limit_addr {
        default  $binary_remote_addr;
        "1"      "";
    }
    limit_zone one $limit_addr 10m;
---------------------------
-----------server----------
    limit_conn one 1;
---------------------------

Натравливаю ab: ab -c 5 -n 100 http://site/index.php

В выводе:
......
Time taken for tests:   0.389 seconds
Complete requests:      100
Failed requests:        19
......

В логе, из 100 запросов - 19 имеют 503 код.
---------index.php---------
<?
phpinfo();
?>
---------------------------


Почему не 99 запросов отрубило, а 19?
Из-за того, что 6 воркеров и они между собой информацией не
поделились?

P.S. Nginx древний, 0.6.34





-- 
С уважением,
Лобахин Илья
Системный администратор
NIKITA.ONLINE
115201, Москва, Каширское  шоссе д. 22/4 строение 7
e-mail: mailto:i.lobahin на nikitaonline.ru
Тел./Факс: +7 (495) 788-7936
http://www.nikitaonline.ru
http://www.gamexp.ru



Подробная информация о списке рассылки nginx-ru