Пaраметр limit_requests#

Группа параметров limit_requests предназначена для ограничения скорости обработки запросов.

  • enabled

    Вкл./Откл. модуля limit_requests. Обязательный параметр.

    Тип параметра:

    • true;

    • false.

    По умолчанию: не имеет значения по умолчанию.

  • status_code

    В значении параметра задается код ответа при превышении допустимого объема запроса или частоты вызовов.

    Тип параметра: текстовое значение.

    По умолчанию:

    status_code: 413
    
  • dry_run

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

    Тип параметра:

    • on;

    • off.

    По умолчанию:

    dry_run: off
    
  • limit_req

    Группа параметров для ограничения скорости обработки запросов. Обязательный параметр.

    Тип параметра: последовательность параметров и их значения.

    • rate

      В значении параметра задается предел количества запросов в секунду. Обязательный параметр.

      Разрешающая способность — миллисекунды, т.е. 10RPS означает не более 1 запроса в 100мсек.

      Используется в случае:

      • mem_limit is None;

      • cpu_limit is None.

      Тип параметра: целочисленное значение.

      По умолчанию: не имеет значения по умолчанию.

    • rate_interval

      В значении параметра указывается интервал времени для измерения скорости запроса.

      Если необходимо указать 0.5r/s, то допустимо указать 30r/m.

      Тип параметра: текстовое значение с суффиксом:

      • s — секунды;

      • m — минуты.

      По умолчанию: по умолчанию значения задаются в „s“.

    • size

      В значении параметра задается размер разделяемой памяти для хранения статистики количества запросов в секунду для каждого ip адреса.

      Тип параметра: текстовое значение с суффиксом:

      • число без суффикса — байты;

      • k / K — килобайты;

      • m / M — мегабайты.

      По умолчанию:

      size: 10m
      
    • burst

      В значении параметра задается максимальное количество запросов, которые может выполнить клиент сверх значения, заданного параметром rate.

      Если скорость поступления запросов превышает rate, то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью. Избыточные запросы задерживаются до тех пор, пока их число не превысит максимальный размер всплеска. При превышении уровня всплеска запрос клиента завершается с ошибкой, которая указана в настройках.

      Тип параметра: целочисленное значение.

      По умолчанию:

      burst: 0
      
    • cpu_limit

      В значении параметра задается максимальная загрузка CPU в процентах. После превышения указанного значения, все входящие соединения будут отклонены.

      Используется в случае:

      • rate is None;

      • mem_limit is None;

      • /system/optional/get_load/enabled == True.

      Тип параметра: целочисленное значение.

      По умолчанию: не имеет значения по умолчанию.

      • mem_limit

      В значении параметра задается максимальная загрузка памяти в процентах. После превышения указанного значения, все входящие соединения будут отклонены.

      Используется в случае:

      • rate is None;

      • mem_limit is None;

      • /system/optional/get_load/enabled == True.

      Тип параметра: целочисленное значение.

      По умолчанию: не имеет значения по умолчанию.

    • target

      В значении параметра определяется ключ, по которому происходит ограничение.

      target: src_ip
      

      Тип параметра:

      • src_ip - ограничение происходит по количеству запросов для каждого ip адреса клиента отдельно;

      • service;

      • request_method;

      • любые переменные, которые можно указать с $, например $server_port.

      По умолчанию: не имеет значения по умолчанию.

    • policy_type

      В значении параметра определяется тип политики.

      Используется в случае:

      • target == src_ip.

      Тип параметра:

      • allow — действие будет выполняться для ip в exclude_ip;

      • forbid — действие будет выполнено для всех ip, кроме ip в exclude_ip.

      По умолчанию:

      policy_type: forbid
      
    • exclude_ip

      В значении параметра задаются имена исключаемых ip.

      Используется в случае

      • target == src_ip.

      exclude_ip:
        - 2.x.x.x/2
        - 192.x.x.x
      

      Тип параметра: последовательность строковых значений.

      По умолчанию: не имеет значения по умолчанию.

    • nodelay

      В значении параметра определяется, требуется ли пропускать избыточные запросы в пределах всплеска без задержки.

      Тип параметра:

      • true;

      • false.

      По умолчанию:

      nodelay: false
      
    • forbid_action

      В значении параметра задается endpoint для редиректа.

      Тип параметра: строковое значение.

      По умолчанию: не имеет значения по умолчанию.

    • condition

      В значении параметра задается результат выражения, в зависимости от которого выполняется или не выполняется ограничение.

      Тип параметра: группа параметров и их значения.

      По умолчанию: не имеет значения по умолчанию.

      Обязательные параметры:

      • condition_var

        В значении параметра указывается обозначение результата выражения.

        Тип параметра: строковое значение. Необходим знак „$“ перед именем.

        По умолчанию: не имеет значения по умолчанию.

      • condition_value

        В значении параметра указывается значение результата выражения.

        Тип параметра: строковое значение.

        По умолчанию: не имеет значения по умолчанию.

      • type

        В значении параметра задается условие применимости результата выражения, в зависимости от выражения.

        Тип параметра:

        • ifall;

        • ifany;

        • if.

        По умолчанию: не имеет значения по умолчанию.

      Опциональные параметры:

      • expression

        В значении параметра задается выражение, включающее в себя следующие параметры: variable, operation, value.

        Тип параметра: последовательность параметров и их значения.

        По умолчанию: не имеет значения по умолчанию.

        Обязательные параметры:

        • variable

          В значении параметра указывается обозначение имени переменной.

          Тип параметра: строковое значение. Необходим знак „$“ перед именем.

          По умолчанию: не имеет значения по умолчанию.

        Опциональные параметры:

        • operation

          В значении параметра задается операция выражения.

          Тип параметра:

          • „>=“;

          • „=“;

          • „>“;

          • „<“;

          • „<=“;

          • „!=“;

          • „~“;

          • „~*“;

          • „!~“;

          • „!~*“;

          • „-f“;

          • „!-f“;

          • „-d“;

          • „!-d“;

          • „-e“;

          • „!-e“;

          • „-x“;

          • „!-x“.

          По умолчанию: не имеет значения по умолчанию.

        • value

          В значении параметра указывается значение переменной.

          Тип параметра: строковое значение.

          По умолчанию: не имеет значения по умолчанию.