Тип сервиса ServiceCache#
Тип сервиса service_cache предназначен для сохранения и последующей загрузки из памяти данных.
В контексте service объявляется соответствующий тип сервиса service_cache:
service:
service_cache:
Сервис представляет собой группу, включающую в себя следующие параметры.
Обязательные параметры:
storages
Общие настройки для подключения к хранилищу.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
name
В значении параметра определяется имя хранилища.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
space
В значении параметра определяется размер хранилища для хранения объектов.
Тип параметра: текстовое значение с суффиксом.
Суффиксы:
- `k / K` — килобайты; - `m / M` — мегабайты.По умолчанию:
space: 10mentries
В значении параметра определяется максимальное количество хранимых сущностей.
Тип параметра: целочисленное значение.
По умолчанию:
entries: 8096remove_time
В значении параметра определяется время хранения объектов.
Тип параметра: текстовое значение с суффиксом.
Суффиксы:
s / S— секунды;m / M— минуты.
По умолчанию: объекты не удаляются.
allowed_queries
Группа параметров, описанных в разделе «Параметр allowed_queries», используемых для указания разрешенных методов запроса и параметров запроса.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
Опциональные параметры:
instances
Список сервисов.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
id
Идентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлах, хранящих информацию о сервисе.
Значение параметра id должно быть уникальным.
Идентификатор может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание « _ «.
service: service_cache: ... instances: - id: 1Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
url
В значении параметра определяется относительный url, на котором будет работать сервис. Есть возможность использовать регулярное выражение.
url: /metrics/myappЗначение параметра url должно быть уникальным.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
name
Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций.
Значение параметра name должно быть уникальным.
Обязательно в случае:
optional/event_hook is not None.Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
profile_version
В значении параметра определяется версия профиля данного сервиса.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
description
Параметр предназначен для хранения строки с описанием сервиса.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
listen
Параметр listen является обязательным только для сервиса типа service_main_proxy. Для сервисов иных типов параметр listen опционален.
В случае, если параметр listen не указан (имеется в виду наличие данного параметра в сервисе типа service_main_proxy и отсутствие в сервисах иных типов), для взаимодействия между сервисами используются unix-сокеты.
Последовательность, включающая в себя параметры, описанные в разделе «Параметр listen».
По умолчанию: не имеет значения по умолчанию.
hostname
В значении параметра указывается виртуальное имя сервера.
Тип параметра: последовательность параметров и их значения.
По умолчанию:
hostname - localhostсекция параметров service_cache
optional
Группа optional используется в сервисе для:
вызова различных таймаутов;
настройки сессии;
ограничения по размеру лимита тела запроса/ответа;
вызова различных утилит;
и др.
Группа, включающая в себя параметры, описанные в разделе «ServiceCache - optional».
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
filters
Группа, включающая в себя следующие параметры:
фильтр modsecurity — позволяет проверить download/upload трафик на наличие угроз (например sql-injection), содержащихся в методе, заголовке запроса, теле и др.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
modifiers
Группа modifiers позволяет изменять содержимое заголовков запроса и ответа.
Группа, включающая в себя параметры, описанные в разделе «Параметр modifiers».
По умолчанию: не имеет значения по умолчанию.
validators
Валидация тела запроса/ответа.
Группа, включающая в себя параметры, описанные в разделе «Валидация».
По умолчанию: не имеет значения по умолчанию.
opentelemetry_tracing
Секция параметров телеметрии.
Секция, включающая в себя параметры, рассмотренные в разделе «Параметр opentelemetry_tracing».
Тип параметра: секция параметров и их значения.
По умолчанию: значения группы задаются пользователем.
log_masking_rules
В значении параметра могут быть определены правила маскирования данных в заголовках и телах запросов/ответов.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
log_type — тип логов.
Возможные значения логов:
all — все типы;
security — логи транзакций фильтра безопасности;
event — логи событий.
По умолчанию:
log_type: allobject — объект, к которому применяется маскирование.
Возможные значения объектов маскирования:
request_header — заголовки запроса;
response_header — заголовки ответа;
request_body — тело запроса;
response_body — тело ответа.
Обязателен для заполнения.
По умолчанию: нет.
header — имя заголовка к которому применяется маскирование
Возможные значения имени заголовка маскирования:
Заполняется и обязателен тогда, когда указан object = request_header/response_header
По умолчанию: нет.
expression — регулярное выражение, содержащее группы
Возможные значения регулярного выражения:
Должно содержать хотя бы одну группу для определения фрагмента замены. Задается для object = request_body/response_body
Обязателен для заполнения.
По умолчанию: нет.
replace_all — заменять все или первое найденное
Возможные значения определяющего параметра:
on/off - определяет, будут ли заменяться только первое найденное значение или все. В том случае, если гарантировано вхождение будет только один раз рекомендуется устанавливать явно значение off для оптимизации производительности. Применяется только для object = request_body/response_body.
По умолчанию:
replace_all: onmask_symbol — символ, который используется для замены
Возможные значения символа для замены:
Определяет, какой символ будет использоваться для замены
По умолчанию: *.
Пример минимальной настройки сервиса:
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
ServiceCache - allowed_queries#
Обязательные параметры:
method — в значении параметра указывается разрешенный метод запроса для сервиса.
Возможные значения метода:
get;
head;
post;
put;
options;
trace;
patch;
delete.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
params — в значении параметра определяется множество допустимых параметров запроса, а также, множество допустимых значений, для каждого из параметров. Заданные параметры не являются обязательными, но требуют наличия хотя бы одного допустимого параметра в запросе.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
name — в значении параметра указывается имя параметра, которое используется для передачи значения на сервис.
Значение параметра name должно быть уникальным.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
pattern — в значении параметра pattern определяется значение, которое может принимать параметр name. Не чувствительно к регистру.
Имеется возможность использования регулярного выражения.
Для использования символов:
\ ^ $ . | ? * + ( ) [ ] { }- в явном виде необходимо их экранирование.Символ \ экранируется только тогда, когда находится в кавычках.
В примере ниже показывается, что экранируется связка \ с иным элементом (например #):
- name: "name_1" pattern: "[^\\#\\$\\%\\&\\(\\)\\*\\+\\,\\-\\.\\:\\;\\<\\=\\>\\?\\^\\_\\{\\|\\}\\~\\@]+" - name: "name_2" pattern: "[^ЁёА-я]+"Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
ServiceCache - optional#
Опциональные параметры:
log_level — в значении параметра переопределяется уровень логирования для сервиса.
Возможные значения:
debug;
info;
notice;
warn;
error;
crit;
alert;
off.
По умолчанию: значение параметра наследуется от значения в system.
(2.1, 2.2) group_access_log — в значении параметра указывается, группировать или нет access журналы по кодам состояния (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500).
Возможные значения: логическое значение:
true;
false.
По умолчанию:
group_access_log: falseclient_header_timeout — в значении параметра указывается таймаут при чтении заголовка запроса клиента.
Возможные значения: текстовое значение с суффиксом.
Суффиксы:
ms — миллисекунда;
s — секунда;
m — минута;
h — час;
d — день;
w — неделя;
M — месяц (30 дней);
y — год (365 дней).
По умолчанию:
client_header_timeout: 60sclient_body_timeout — в значении параметра указывается таймаут при чтении тела запроса клиента.
Возможные значения: текстовое значение с суффиксом.
Суффиксы:
ms — миллисекунда;
s — секунда;
m — минута;
h — час;
d — день;
w — неделя;
M — месяц (30 дней);
y — год (365 дней).
По умолчанию:
client_body_timeout: 60skeepalive_timeout — в значении параметра указывается таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера.
Возможные значения: текстовое значение с суффиксом:
ms — миллисекунда;
s — секунда;
m — минута;
h — час;
d — день;
w — неделя;
M — месяц (30 дней);
y — год (365 дней).
По умолчанию:
keepalive_timeout: 75skeepalive_requests — в значении параметра указывается максимальное число запросов, которые можно сделать по одному keep-alive соединению.
Возможные значения: целочисленное значение.
По умолчанию:
keepalive_requests: 10000send_timeout_to_client — в значении параметра указывается таймаут при передаче ответа клиенту.
Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями записи.
Если по истечении этого времени клиент ничего не примет, соединение будет закрыто.
Возможные значения: текстовое значение с суффиксом:
ms — миллисекунда;
s — секунда;
m — минута;
h — час;
d — день;
w — неделя;
M — месяц (30 дней);
y — год (365 дней).
По умолчанию:
send_timeout_to_client: 60ssession — в значении параметра включается поддержка http сессии.
session_module (параметры: session, session_timeout, session_cookie_name, session_redirect_timeout, session_show) предоставляет собой функцию отслеживания http запросов — записывается информация о сеансе, устанавливая cookie в браузере клиента. Некоторые модули безопасности, такие как ip_behavior, основываются на данном модуле.
Возможные значения:
on;
off.
По умолчанию:
session: offsession_timeout — в значении параметра указывается таймаут сессии.
Возможные значения: целочисленное значение.
По умолчанию:
session_timeout: 60session_cookie_name — в значении параметра указывается имя cookie сессии.
Возможные значения: строковое значение.
По умолчанию:
session_cookie_name: SENGINX-SESSION-IDsession_redirect_timeout — в значении параметра устанавливается время ожидания после отправки SEnginx ответа перенаправления клиенту в секундах.
Значение в секундах. Значение не должно быть больше session_timeout.
Возможные значения: целочисленное значение.
По умолчанию:
session_redirect_timeout: 5session_show — в значении параметра определяется возможность просматривать информацию о текущих сессиях.
Возможные значения:
on;
off.
По умолчанию:
session_show: falsesession_cache — в значении параметра определяется размер кэша для ssl сессии.
Возможные значения: группа параметров и их значения.
По умолчанию: значение по умолчанию оценивается автоматически.
Обязательные параметры:
type — в значении параметра определяется тип размера кэша.
Значение параметра type должно быть уникальным.
Возможные значения:
off — жесткое запрещение использования кэша сессий: nginx явно сообщает клиенту, что сессии не могут использоваться повторно;
none — мягкое запрещение использования кэша сессий: nginx сообщает клиенту, что сессии могут использоваться повторно, но на самом деле не хранит параметры сессии в кэша;
builtin — встроенный в OpenSSL кэш, используется в рамках только одного рабочего процесса. Размер кэша задается в сессиях. Если размер не задан, то он равен 20480 сессиям. Использование встроенного кэша может вести к фрагментации памяти;
shared — кэш, разделяемый между всеми рабочими процессами. Размер кэша задается в байтах, в 1 мегабайт может поместиться около 4000 сессий. У каждого разделяемого кэша должно быть произвольное название. Кэш с одинаковым названием может использоваться в нескольких виртуальных серверах.
По умолчанию: не имеет значения по умолчанию.
name — в значении параметра указывается имя размера.
Используется в случае:
type: shared.Возможные значения: cтроковое значение.
По умолчанию: не имеет значения по умолчанию.
size — в значении параметра указывается величина размера.
Используется в случае:
type: builtin; type: shared.Возможные значения: текстовое значение с суффиксом.
число без суффикса — байты;
k / K — килобайты;
m / M — мегабайты.
По умолчанию: не имеет значения по умолчанию.
Пример:
session_cache: type: shared name: my_name_size size: 4kupload_size_limit — в значении параметра определяется ограничение размера тела запроса.
Возможные значения: группа параметров и их значения.
По умолчанию:
size: 1MbОбязательные параметры:
size — в значении параметра задается максимальный размер тела запроса.
Возможные значения: Текстовое значение с суффиксом.
Суффиксы:
число без суффикса — байты;
k / K — килобайты;
m / M — мегабайты.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
drop — в значении параметра определяется, нужно ли сбрасывать соединение при превышении size.
Возможные значения:
on;
of.
По умолчанию: не имеет значения по умолчанию.
enable — в значении параметра определяется, включать ли ограничение размера тела запроса.
Возможные значения: логическое значение:
true;
false.
По умолчанию:
enable: trueПример:
upload_size_limit: size: 40M drop: on enable: truedownload_size_limit — в значении параметра определяется ограничение размера тела ответа.
Возможные значения: группа параметров и их значения.
По умолчанию: 1Mb.
Обязательные параметры:
size — в значении параметра задается максимальный размер тела запроса.
Возможные значения: Текстовое значение с суффиксом:
число без суффикса — байты;
k / K — килобайты;
m / M — мегабайты.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
drop — в значении параметра определяется, нужно ли сбрасывать соединение при превышении size.
Возможные значения:
on;
off.
По умолчанию: не имеет значения по умолчанию.
status — в значении параметра задается статус код при превышении размера тела ответа.
Возможные значения: текстовое значение.
По умолчанию:
status: 413Пример:
download_size_limit: size: 50k drop: off status: 413kafka_logger_id — в значении параметра определяется идентификатор сервиса для обработки события.
Возможные значения: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
set_variable — в значении параметра могут быть определены имена переменных и их значения.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
name — в значении параметра указывается имя переменной.
Возможные значения: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
value — в значении параметра указывается значение переменной.
Возможные значения: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
limit_requests — группа параметров, описанных в разделе Пaраметр limit_requests.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
limit_req — группа параметров limit_req предназначена для ограничения скорости обработки запросов. В ней определяется, требуется ли пропускать избыточные запросы в пределах всплеска без задержки.
Группа, включающая в себя параметры, описанные в разделе «Параметр limit_req».
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
robot_mitigation — группа параметров robot_mitigation предназначена для противодействия роботам, отправляющим HTTP запросы, а также сканированию портов. Принцип работы основан на отправке клиенту ответов на его запросы, которые должны быть интерпретированы клиентом требуемым образом, для того чтобы модуль мог определить допустимую активность.
Группа, включающая в себя параметры, описанные в разделе «Параметр robot_mitigation».
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
ip_behavior — группа параметров ip_behavior предназначена для мониторинга поведения пользователей при доступе к серверу. ip_behavior в основном используется с другими группами параметров безопасности, такими как limit_req и robot_mitigation. ip_behavior поддерживает обнаружение доступа только через url.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
cookie_poisoning — группа параметров cookie_poisoning отслеживает заголовки Set-Cookies и значения cookie в ответе со стороны сервера. Если отслеживаемые значения файлов cookie изменяются на стороне клиента, cookie_poisoning обнаруживает это и выполняет действия в соответствии с настройками пользователя. Группа параметров зависит от session_module (параметры: session, session_timeout, session_cookie_name, session_redirect_timeout, session_show), поэтому перед использованием директив cookie_poisoning необходимо сначала включить session_module.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
spnego — группа параметров spnego предназначена для аутентификации kerberos.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
gzip — группа параметров gzip позволяет осуществлять сжатие ответа одноименным методом.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
event_hook — группа параметров event_hook производит журналирование событий.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
limit_conn — группа параметров limit_conn ограничивает число соединений по заданному ключу.
Группа параметров, описанных в разделе Параметр limit_conn.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
log_masking — группа параметров log_masking предназначена для задания правил маскирования чувствительной информации в логах событий и логов транзакции фильтров безопасности.
Группа параметров, описанных в разделе Параметр log_masking_rules.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
http2 - группа параметров http2 позволяет регулировать настройки входящих подключений по протоколу http2.
Группа параметров, описанных в разделе Параметр http2.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
logging2 — группа параметров logging предназначена для задания параметров отправки событий конфигуратора.
Группа параметров, описанных в разделе Параметр logging.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
pipelined_requests — в значении параметра указывается признак запрета использования HTTP pipelined requests для входящих запросов клиента. Если установлено значение off, то в случае получения нескольких pipelined запросов будет обработан только первый, после чего соединение будет закрыто и в логах появится сообщение об ошибке.
Возможные значения:
on;
off.
По умолчанию: on.
healthcheck_dynamic - группа параметров healthcheck_dynamic предназначена для настройки динамической генерации ответов на запросы о текущем состоянии экземпляра или сервиса, объявленного в конфигурации.
Группа параметров, описанных в разделе Пaраметр healthcheck_dynamic.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.