Параметр limit_req#
Группа параметров limit_req предназначена для ограничения скорости обработки запросов. В ней определяется, требуется ли пропускать избыточные запросы в пределах всплеска без задержки.
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Обязательный |
Вкл./Откл. модуля |
|
— |
|
Обязательный (если |
Предел количества запросов в секунду. Разрешающая способность — миллисекунды, т.е. 10RPS означает не более 1 запроса в 100мсек |
Целочисленное значение |
— |
|
Обязательный |
Ключ, по которому происходит ограничение. Для сервиса типа |
|
— |
|
Опциональный |
Интервал времени для измерения скорости запроса. Если необходимо 0.5r/s, то можно указать 30r/m |
Текстовое значение с суффиксом: |
Значения задаются в |
|
Опциональный |
Размер разделяемой памяти для хранения статистики количества запросов в секунду для каждого ip адреса |
Текстовое значение с суффиксом: число без суффикса — байты; |
|
|
Опциональный |
Максимальное количество запросов, которые может выполнить клиент сверх значения, заданного параметром |
Целочисленное значение |
|
|
Опциональный (если |
Максимальная загрузка CPU в процентах. После превышения указанного значения, все входящие соединения будут отклонены |
Целочисленное значение |
— |
|
Опциональный (если |
Максимальная загрузка памяти в процентах. После превышения указанного значения, все входящие соединения будут отклонены |
Целочисленное значение |
— |
|
Опциональный (если |
Тип политики |
|
|
|
Опциональный (если |
Имена исключаемых ip |
Последовательность строковых значений |
— |
|
Опциональный |
Требуется ли пропускать избыточные запросы в пределах всплеска без задержки |
|
|
|
Опциональный |
Endpoint для редиректа |
Строковое значение |
— |
|
Опциональный |
Код ответа при превышении допустимого объема запроса или частоты вызовов |
Текстовое значение |
|
|
Опциональный |
Режим пробного запуска. В данном режиме скорость обработки запросов не ограничивается, однако в зоне разделяемой памяти текущее число избыточных запросов учитывается как обычно |
|
|
|
Опциональный |
Результат выражения, в зависимости от которого выполняется или не выполняется ограничение |
Группа параметров и их значения |
— |
|
Обязательный (в рамках |
Обозначение результата выражения |
Строковое значение. Необходим знак „$“ перед именем |
— |
|
Обязательный (в рамках |
Значение результата выражения |
Строковое значение |
— |
|
Обязательный (в рамках |
Условие применимости результата выражения, в зависимости от выражения |
|
— |
|
Опциональный (в рамках |
Выражение, включающее в себя следующие параметры: variable, operation, value |
Последовательность параметров и их значения |
— |
|
Обязательный (в рамках |
Обозначение имени переменной |
Строковое значение. Необходим знак „$“ перед именем |
— |
|
Опциональный (в рамках |
Операция выражения |
|
— |
|
Опциональный (в рамках |
Значение переменной |
Строковое значение |
— |
Пример:
limit_req:
enabled: true
target: service
rate: 60
burst: 10
size: 100m
nodelay: True
status_code: 403
forbid_action: /web
condition:
condition_var: $var
condition_value: '1'
type: ifall
expression:
- operation: '>='
variable: $insensitive_percent
value: '0'
- operation: '<'
variable: $insensitive_percent
value: '30'