Ошибка ограничения limit zone в 0.7.67-3+squeeze3

Karsonito nginx-forum at nginx.us
Wed May 1 22:27:11 UTC 2013


Возможно это известный факт, но решил сперва посоветоваться.
В старой версии 0.7.67-3+squeeze3 действительно присутствует проблема с
ограничением по IP?

У меня стабильно воспроизводится.
Конфиг:
http {
    ...
    limit_zone perip $binary_remote_addr 10m;
    limit_conn perip 4;
    ...
}

Скрипт для теста sleep.php:
<?php
sleep(1);

Запускаю:
ab -v 2 -c 4 -n 1000 http://127.0.0.1/sleep.php
Все запросы принимаются, ограничение не срабатывает.
Одновременно с первым ab запускаю второй:
ab -v 2 http://192.168.0.1/sleep.php
И сразу получаю 503
В журнале: limiting connections by zone "conns", client: 192.168.0.1,
server: , request: "GET /sleep.php HTTP/1.0", host: "192.168.0.1"

Проще говоря, nginx ограничивает если одновременно обрабатывается больше чем
указано в limit_conn, не обращая внимания на limit_zone.

Попробовал тот же конфиг на 1.2.1-2.2~bpo60+2 - все работает корректно.
Ограничение сработало только для соединений с одного IP.

Я не ошибся?

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



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