Тип сервиса ServiceCache#

Тип сервиса service_cache предназначен для сохранения и последующей загрузки из памяти данных.

В контексте service объявляется соответствующий тип сервиса service_cache:

service:
  service_cache:

Сервис представляет собой группу, включающую в себя следующие параметры.

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

storages

Обязательный

Общие настройки для подключения к хранилищу

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

—

storages.name

Обязательный (в рамках storages)

Имя хранилища

Строковое значение

—

storages.space

Опциональный (в рамках storages)

Размер хранилища для хранения объектов

Текстовое значение с суффиксом: k/K (килобайты), m/M (мегабайты)

10m

storages.entries

Опциональный (в рамках storages)

Максимальное количество хранимых сущностей

Целочисленное значение

8096

storages.remove_time

Опциональный (в рамках storages)

Время хранения объектов

Текстовое значение с суффиксом: s/S (секунды), m/M (минуты)

Объекты не удаляются

allowed_queries

Обязательный

Указание разрешенных методов запроса и параметров запроса

Группа параметров и их значения

Значения группы задаются пользователем

instances

Опциональный

Список сервисов

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

—

instances.id

Обязательный (в рамках instances)

Идентификатор сервиса в контексте всего профиля. Значение должно быть уникальным

Текстовое значение (строка, число или их комбинация, разделитель — «_»)

—

instances.url

Обязательный (в рамках instances)

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

Строковое значение

—

instances.name

Опциональный (в рамках instances; обязателен, если optional/event_hook is not None)

Технологическое название сервиса, используемое для идентификации в логах транзакций. Значение должно быть уникальным

Текстовое значение

—

instances.profile_version

Опциональный (в рамках instances)

Версия профиля данного сервиса

Текстовое значение

—

instances.description

Опциональный (в рамках instances)

Строка с описанием сервиса

Текстовое значение

—

instances.listen

Опциональный (в рамках instances)

Настройки прослушивания. Если не указан, используются unix-сокеты

Последовательность параметров, описанных в разделе Параметр listen

—

instances.hostname

Опциональный (в рамках instances)

Виртуальное имя сервера

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

localhost

instances.optional

Опциональный (в рамках instances)

Таймауты, настройка сессии, ограничения, утилиты и др.

Последовательность параметров, описанных в разделе «ServiceCache - optional»

—

instances.filters

Опциональный (в рамках instances)

Фильтр modsecurity — проверка download/upload трафика на наличие угроз

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

—

instances.modifiers

Опциональный (в рамках instances)

Изменение содержимого заголовков запроса и ответа

Параметры, описанные в разделе Параметр modifiers

—

instances.validators

Опциональный (в рамках instances)

Валидация тела запроса/ответа. В качестве альтернативы рекомендуется использовать действия JsonValidation и XsdValidation

Параметры, описанные в разделе «Валидация»

—

instances.opentelemetry_tracing

Опциональный (в рамках instances)

Секция параметров телеметрии

Параметры, описанные в разделе Параметр opentelemetry_tracing

Значения группы задаются пользователем

log_masking_rules

Опциональный

Правила маскирования данных в заголовках и телах запросов/ответов

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

—

log_masking_rules.log_type

Опциональный (в рамках log_masking_rules)

Тип логов

all — все типы; security — логи транзакций фильтра безопасности; event — логи событий

all

log_masking_rules.object

Обязательный (в рамках log_masking_rules)

Объект, к которому применяется маскирование

request_header — заголовки запроса; response_header — заголовки ответа; request_body — тело запроса; response_body — тело ответа

—

log_masking_rules.header

Обязательный (если object = request_header/response_header)

Имя заголовка, к которому применяется маскирование

Строковое значение

—

log_masking_rules.expression

Обязательный (если object = request_body/response_body)

Регулярное выражение, содержащее группы для определения фрагмента замены

Текстовое значение

—

log_masking_rules.replace_all

Опциональный (если object = request_body/response_body)

Заменять все или первое найденное значение

on, off

on

log_masking_rules.mask_symbol

Опциональный (в рамках log_masking_rules)

Символ, который используется для замены

Строковое значение

*

ServiceCache - allowed_queries#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

method

Обязательный

Разрешенный метод запроса для сервиса

get, head, post, put, options, trace, patch, delete

—

params

Опциональный

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

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

—

params.name

Обязательный (в рамках params)

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

Строковое значение

—

params.pattern

Обязательный (в рамках params)

Значение, которое может принимать параметр name. Не чувствительно к регистру. Есть возможность использования регулярного выражения

Текстовое значение

—

ServiceCache - optional#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

log_level

Опциональный

Уровень логирования для сервиса

debug, info, notice, warn, error, crit, alert, off

Наследуется от значения в system

group_access_log

Опциональный

Группировка access журналов по кодам состояния (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500)

true, false

false

client_header_timeout

Опциональный

Таймаут при чтении заголовка запроса клиента

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

60s

client_body_timeout

Опциональный

Таймаут при чтении тела запроса клиента

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

60s

keepalive_timeout

Опциональный

Таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

75s

keepalive_requests

Опциональный

Максимальное число запросов по одному keep-alive соединению

Целочисленное значение

10000

send_timeout_to_client

Опциональный

Таймаут при передаче ответа клиенту (между двумя операциями записи)

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

60s

session

Опциональный

Поддержка http сессии (отслеживание http запросов, запись информации о сеансе, установка cookie)

on, off

off

session_timeout

Опциональный

Таймаут сессии

Целочисленное значение

60

session_cookie_name

Опциональный

Имя cookie сессии

Строковое значение

SEGINX-SESSION-ID

session_redirect_timeout

Опциональный

Время ожидания после отправки SEnginx ответа перенаправления клиенту в секундах (не должно быть больше session_timeout)

Целочисленное значение

5

session_show

Опциональный

Возможность просматривать информацию о текущих сессиях

on, off

false

session_cache

Опциональный

Размер кэша для ssl сессии

Группа параметров и их значения

Оценивается автоматически

session_cache.type

Обязательный (в рамках session_cache)

Тип размера кэша

off — жесткое запрещение; none — мягкое запрещение; builtin — встроенный OpenSSL кэш; shared — разделяемый кэш

—

session_cache.name

Обязательный (если type: shared)

Имя размера

Строковое значение

—

session_cache.size

Обязательный (если type: builtin или type: shared)

Величина размера

Текстовое значение с суффиксом: число (байты), k/K (килобайты), m/M (мегабайты)

—

upload_size_limit

Опциональный

Ограничение размера тела запроса

Группа параметров и их значения

size: 1Mb

upload_size_limit.size

Обязательный (в рамках upload_size_limit)

Максимальный размер тела запроса

Текстовое значение с суффиксом: число (байты), k/K (килобайты), m/M (мегабайты)

—

upload_size_limit.drop

Опциональный (в рамках upload_size_limit)

Сброс соединения при превышении size

on, off

—

upload_size_limit.enable

Опциональный (в рамках upload_size_limit)

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

true, false

true

download_size_limit

Опциональный

Ограничение размера тела ответа

Группа параметров и их значения

1Mb

download_size_limit.size

Обязательный (в рамках download_size_limit)

Максимальный размер тела ответа

Текстовое значение с суффиксом: число (байты), k/K (килобайты), m/M (мегабайты)

—

download_size_limit.drop

Опциональный (в рамках download_size_limit)

Сброс соединения при превышении size

on, off

—

download_size_limit.status

Опциональный (в рамках download_size_limit)

Статус код при превышении размера тела ответа

Текстовое значение

413

kafka_logger_id

Опциональный

Идентификатор сервиса для обработки события

Текстовое значение

—

set_variable

Опциональный

Определение имен переменных и их значений

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

—

set_variable.name

Обязательный (в рамках set_variable)

Имя переменной

Текстовое значение

—

set_variable.value

Обязательный (в рамках set_variable)

Значение переменной

Текстовое значение

—

limit_requests

Опциональный

Ограничение запросов

Последовательность параметров, описанных в разделе Пaраметр limit_requests

—

limit_req

Опциональный

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

Параметры, описанные в разделе Параметр limit_req

—

robot_mitigation

Опциональный

Противодействие роботам, отправляющим HTTP запросы, а также сканированию портов

Параметры, описанные в разделе Параметр robot_mitigation

—

ip_behavior

Опциональный

Мониторинг поведения пользователей при доступе к серверу. Используется с другими группами параметров безопасности

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

—

cookie_poisoning

Опциональный

Отслеживание заголовков Set-Cookies и значений cookie в ответе. Зависит от session_module

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

—

gzip

Опциональный

Сжатие ответа методом gzip

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

—

event_hook

Опциональный

Журналирование событий

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

—

limit_conn

Опциональный

Ограничение числа соединений по заданному ключу

Параметры, описанные в разделе Параметр limit_conn

—

log_masking

Опциональный

Правила маскирования чувствительной информации в логах событий и логах транзакции фильтров безопасности

Параметры, описанные в разделе Параметр log_masking_rules

—

http2

Опциональный

Настройки входящих подключений по протоколу http2

Параметры, описанные в разделе Параметр http2

—

logging2

Опциональный

Параметры отправки событий конфигуратора

Параметры, описанные в разделе Параметр logging

—

pipelined_requests

Опциональный

Признак запрета использования HTTP pipelined requests для входящих запросов клиента

on, off

on

healthcheck_dynamic

Опциональный

Динамическая генерация ответов на запросы о текущем состоянии экземпляра или сервиса

Параметры, описанные в разделе Пaраметр healthcheck_dynamic

—

Пример минимальной настройки сервиса:

version: 2.0.3
profile: profile_name
system:
  wrk_count: 4
  conn_count: 2048
  optional:
    storages:
      - name: testname
service:
  service_cache:
    storages:
      - name: testname
    instances:
      - id: 1
        url: /cache
        configuration_file: example.yml
        allowed_queries:
          - method: post

Пример session_cache:

session_cache:
  type: shared
  name: my_name_size
  size: 4k

Пример upload_size_limit:

upload_size_limit:
  size: 40M
  drop: on
  enable: true

Пример download_size_limit:

download_size_limit:
  size: 50k
  drop: off
  status: 413