Обход ограничений limit conn

Antohat nginx-forum at nginx.us
Sun Jul 7 17:43:34 UTC 2013


Уважаемые разработчики!

Мы используем на сайте ограничение на количество одновременных соединений с
одного IP со следующим конфигом:

limit_conn_zone $binary_remote_addr zone=addr:64m;
limit_conn addr 20;
limit_conn_log_level warn;

Все работало отлично, но некоторое время назад мы с удивлением обнаружили,
что бекенд обрабатывает более 500 запросов с одного IP.
В результате анализа выяснилось, что какой-то смышленный малый создает
большое количество соединений и сразу же их рвет. В результате nginx
успевает передать запрос на бекенд, но т.к. пользователь сразу же рвет
соединение и создает новые, то ограничение на количество запросов не
срабатывает.

Я понимаю, что с точки зрения nginx тут все чисто, т.к. он считает только
открытые соединения со стороны клиента, но если подумать, то limit_conn все
таки используется администраторами как средство ограничения кол-ва
одновременных запросов на бекенд, т.к. большое кол-во запросов на к самому
Nginx совсем не проблема.

Не могли бы вы реализовать ограничение количества одновременных запросов с
одного IP на бекенд, т.к. текущий функционал limit_conn тут не помогает?

Спасибо,
Антон.

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



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