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