Модуль ngx_http_limit_req_module | ![]() english עברית 日本語 русский türkçe новости [en] об nginx скачать безопасность [en] pgp ключи [en] документация введение [en] howto faq trac wiki ссылки [en] книги [en] поддержка пожертвования [en] nginx.com @nginxorg | ||||||||||||||||||
Модуль Пример конфигурации
Директивы
Задаёт зону (zone) и максимально возможные всплески запросов (burst). Если скорость запросов превышает описанную в зоне, то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью. Избыточные запросы задерживаются до тех пор, пока их число не превысит заданное число всплесков. В этом случае запрос завершается с ошибкой 503 (Service Temporarily Unavailable). По умолчанию число всплесков равно нулю. Например, директивы позволяют в среднем не более 1 запроса в секунду со всплесками не более 5 запросов.
Если же избыточные запросы в пределах лимита всплесков задерживать
не требуется, то следует использовать параметр limit_req zone=one burst=5 nodelay;
Эта директива появилась в версии 0.8.18.
Задаёт желаемый уровень записи в лог случаев ограничения
числа запросов и задержек при обработке запроса.
Задержки записываются в лог с уровнем на единицу меньшим, чем ограничения,
например, если указано “
Задаёт параметры зоны, которая хранит состояние для разных значений ключа. Состояние в частности хранит текущее число запросов. Ключом является любое непустое значение заданной переменной (пустые значения не учитываются). Пример использования: limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
В данном случае состояния хранятся в зоне “one” размером 10 мегабайт, и средняя скорость запросов для этой зоны не может превышать 1 запроса в секунду.
В качестве ключа используется IP-адрес клиента.
Обратите внимание, что вместо переменной Скорость задаётся в запросах в секунду (r/s). Если же нужна скорость меньше одного запроса в секунду, то она задаётся в запросах в минуту (r/m), например, ползапроса в секунду — это 30r/m. |