Назад | Перейти на главную страницу

Ограничение запросов в минуту в nginx

Я хотел бы установить ограничение на количество запросов, которые один клиентский IP-адрес может отправить моему серверу, на основе их IP-адреса. Nginx имеет limit_req_zone директива. Однако эта директива фактически ограничит средний хиты. Если я установлю свой предел rate=6r/m, на самом деле он будет допускать только одно попадание каждые 10 секунд.

Вместо этого мне нужен фактический лимит в минуту. Например. клиент должен иметь возможность отправлять 3 или 4 запроса быстро один за другим или даже одновременно, но не более чем, например, 10 в минуту. Есть ли способ сделать это?

Я думаю, это можно сделать с помощью nodelay настройку, как описано в нижней части limit_req вики:

Если в задержке лишних запросов в пакете нет необходимости, вам следует использовать опцию без задержки:

limit_req   zone=one  burst=5  nodelay;