Welcome! Log In Create A New Profile

Advanced

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

Maxim Dounin
July 07, 2013 05:52PM
Hello!

On Sun, Jul 07, 2013 at 01:43:34PM -0400, Antohat wrote:

> Уважаемые разработчики!
>
> Мы используем на сайте ограничение на количество одновременных соединений с
> одного 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 тут не помогает?

С точки зрения nginx'а - никаких запросов уже нет вообще, т.к.
вслед за закрытием соединения клиентом - он закрывает соединение с
бекендом и полностью завершает обработку запроса.

Если у вас бекенд не достаточно умный, чтобы понять, что с
закрытым соединением уже ничего делать не нужно - то можно
включить proxy_ignore_client_abort:

http://nginx.org/r/proxy_ignore_client_abort

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

--
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

Antohat July 07, 2013 01:43PM

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

Maxim Dounin July 07, 2013 05:52PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 162
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready