Тип сeрвиса ServiceStatic#
Сервисы типа service_static предназначены для раздачи статического контента.
В контексте service объявляется соответствующий тип сервиса service_static:
service:
service_static:
Каждый сервис представляет собой последовательность, включающую в себя следующие параметры:
Обязательные параметры:
id
Идентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлах, хранящих информацию о сервисе.
Значение параметра id должно быть уникальным.
Идентификатор может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание « _ «.
Количество сервисов не ограничено конфигуратором явно.
- id: 1 ... - id: my_service_one ...Тип параметра: текстовое значение.
url
В значении параметра определяется относительный url, на котором будет работать сервис. Есть возможность использовать регулярное выражение.
url: /my_service_urlЗначение параметра url должно быть уникальным.
Тип параметра: текстовое значение.
Опциональные параметры:
name
Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций.
Значение параметра name должно быть уникальным.
Обязательно в случае:
optional: event_hook: ...Тип параметра: строковое значение.
По умолчанию: значение задается пользователем.
profile_version
В значении параметра определяется версия профиля данного сервиса.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
description
Параметр предназначен для хранения строки с описанием сервиса.
Значение параметра description не является уникальным.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
listen
Параметр listen является обязательным только для сервиса типа service_main_proxy. Для сервисов иных типов параметр listen опционален.
В случае, если параметр listen не указан (имеется ввиду наличие данного параметра в сервисе типа service_main_proxy и отсутствие в сервисах иных типов), для взаимодействия между сервисами используются unix-сокеты.
Последовательность, включающая в себя параметры, описанные в разделе «Параметр listen».
Тип параметра: последовательность параметров и их значения.
По умолчанию: значения последовательности задаются пользователем.
hostname
В значении параметра указывается виртуальное имя сервера.
hostname: - localhostТип параметра: последовательность строковых значений.
По умолчанию: Значения строковой последовательности задаются пользователем.
response_headers
Тип параметра: последовательность строковых значений.
По умолчанию: значения последовательности задаются пользователем.
Обязательные параметры:
name
В значении параметра определяется имя заголовка ответа.
Тип параметра: строковое значение.
value
В значении параметра определяется значение заголовка ответа.
Обязательно в случае:
value_from_header is None.
Тип параметра: строковое значение.
value_from_header
В значении параметра задается имя заголовка запроса для установки его значения в заголовок ответа.
Обязательно в случае:
value is None.
Тип параметра: строковое значение.
chains
Группа параметров представляет собой механизм для построения цепочек валидаторов любой сложности.
Для данного сервиса разрешены следующие chains, описанные в разделе «Параметр chains_request».
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
response_generator
Группа параметров, описанных в разделе «Параметр response_generator», для генерации ответов.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
allowed_queries
Группа параметров, описанных в разделе «Параметр allowed_queries», используемых для указания разрешенных методов запроса и параметров запроса.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
optional
Группа параметров, описанных в разделе «ServiceStatic - optional», и используемых в сервисе для:
указания статических ресурсов
index
и т.д.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
Пример минимальной настройки:
version: 2.0.3
profile: profile_name
system:
wrk_count: 4
conn_count: 2048
optional:
wrk_user: sowactl
log_level: error
service:
service_static:
- id: js
listen:
- port: 8080
hostname:
- localhost
description: static JS scripts
url: /analytics
optional:
index: bundle.js
SеrviceStatic - optional#
В разделе приведено описание опциональных параметров для сервиса ServiceStatic.
Опциональные параметры:
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.
По умолчанию:
group_access_log: falselog_format
В значении параметра указывается формат логирования.
Тип параметра: текстовое значение.
По умолчанию: значение по умолчанию отсутствует.
root
В значении параметра определяется корневой каталог для раздаваемого статического контента. Значение должно быть относительным путем от пользовательских ресурсов.
Например, если url сервиса «/i/», а «root: /data/w3», то в ответ на запрос «/i/top.gif» будет отдан файл /data/w3/i/top.gif.
Путь к файлу формируется путем простого добавления URI к значению директивы root. Если же URI необходимо поменять, следует воспользоваться директивой alias.
Используется в случае:
alias is None.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
alias
В значении параметра определяется каталог, для замены корневого каталога, для раздаваемого статического контента. Значение должно быть относительным путем от пользовательских ресурсов.
Например, если url сервиса «/i/», а «alias: /data/w3/images/», то на запрос «/i/top.gif» будет отдан файл /data/w3/images/top.gif.
Если url сервиса задан регулярным выражением, то регулярное выражение должно содержать выделения, а сам alias — ссылки на эти выделения, например:
url: ^/users/(.+\.(?:gif|jpe?g|png))$ optional: alias: /data/w3/images/$1Используется в случае:
root is None.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
absolute_alias_path
В значении параметра определяется, необходимо ли указывать путь алиаса от кастомных ресурсов или абсолютно.
Используется в случае:
alias is not None.
Возможные значения: -true; -false.
По умолчанию:
absolute_alias_path:falseindex
В значении параметра указывается имя индексной страницы или файла.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
rewrite
Изменение URI в соответствии со строкой замены.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
Обязательные параметры:
from
В значении параметра указывается «что» изменить.
Тип параметра: текстовое значение.
to
В значении параметра указывается на «что» изменить.
Тип параметра: текстовое значение.
Опциональные параметры:
flag
В значении параметра указывается флаг изменения.
Тип параметра: текстовое значение.
last — завершается обработка текущего набора директив секции rewrite, после чего ищется новый location, соответствующий измененному URI;
break;
redirect — возвращает временное перенаправление с кодом 302; используется, если заменяющая строка не начинается с “http://”, “https://” или “$scheme”;
permanent — возвращает постоянное перенаправление с кодом 301.
По умолчанию: значение задается пользователем.
etag
В значении параметра определяется, включать ли etag заголовка ответа.
Возможные значения:
true;
false.
По умолчанию:
etag: trueuri_match_type
В значении параметра задается тип совпадения URI.
Тип параметра: текстовое значение.
prefix — стандартный match;
regex — match с помощью регулярного выражения;
exact — точный match.
По умолчанию:
uri_match_type: regexopentelemetry_tracing
Секция параметров телеметрии.
Секция, включающая в себя параметры, рассмотренные в разделе «Параметр opentelemetry_tracing».
Тип параметра: секция параметров и их значения.
По умолчанию: значения группы задаются пользователем.
response_code
В значении параметра устанавливается код состояния ответа.
Тип параметра: целочисленное значение.
По умолчанию: значение задается пользователем.
response_body
В значении параметра устанавливается тело ответа.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
response_file
В значении параметра указывается файл ответа.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
client_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, основываются на данном модуле.
Тип параметра: логическое значение:
true;
false.
По умолчанию:
session: falsesession_timeout
В значении параметра указывается таймаут сессии.
Тип параметра: целочисленное значение.
По умолчанию:
session_timeout: 60session_cookie_name
В значении параметра указывается имя куки сессии.
Тип параметра: текстовое значение.
По умолчанию:
session_cookie_name: SENGINX-SESSION-IDsession_redirect_timeout
В значении параметра устанавливается время ожидания после отправки SEnginx ответа перенаправления клиенту в секундах.
Значение в секундах. Значение не должно быть больше session_timeout.
Тип параметра: целочисленное значение.
По умолчанию:
session_redirect_timeout: 5session_show
В значении параметра определяется возможность просматривать информацию о текущих сессиях.
Тип параметра: логическое значение:
true;
false.
По умолчанию:
session_show: falsesession_cache
В значении параметра определяется размер кэша для TLS(SSL) сессии.
Тип параметра: группа параметров и их значения.
По умолчанию: значение по умолчанию оценивается автоматически.
Обязательные параметры:
type
В значении параметра определяется тип размера кэша.
Значение параметра type должно быть уникальным.
Тип параметра:
off — жесткое запрещение использования кэша сессий: nginx явно сообщает клиенту, что сессии не могут использоваться повторно;
none — мягкое запрещение использования кэша сессий: nginx сообщает клиенту, что сессии могут использоваться повторно, но на самом деле не хранит параметры сессии в кэше;
builtin — встроенный в OpenSSL кэш, используется в рамках только одного рабочего процесса. Размер кэша задается в сессиях. Если размер не задан, то он равен 20480 сессиям. Использование встроенного кэша может вести к фрагментации памяти;
shared — кэш, разделяемый между всеми рабочими процессами. Размер кэша задается в байтах, в 1 мегабайт может поместиться около 4000 сессий. У каждого разделяемого кэша должно быть произвольное название. Кэш с одинаковым названием может использоваться в нескольких виртуальных серверах.
По умолчанию: не имеет значения по умолчанию.
name
В значении параметра указывается имя размера.
Используется в случае:
type: shared.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
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;
off.
По умолчанию:
drop: offenable
В значении параметра определяется, включать ли ограничение размера тела запроса.
Тип параметра: логическое значение:
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.
По умолчанию:
drop: offstatus
В значении параметра задается статус код при превышении размера тела ответа.
Тип параметра: текстовое значение.
По умолчанию:
status: 413
download_size_limit: size: 50k drop: off status: 413set_variable
В значении параметра могут быть определены имена переменных и их значения.
Тип параметра: последовательность параметров и их значения.
По умолчанию: значения последовательности задаются пользователем.
Обязательные параметры:
name
В значении параметра указывается имя переменной.
Тип параметра: текстовое значение.
value
В значении параметра указывается значение переменной.
Тип параметра: текстовое значение.
limit_req
Группа параметров limit_req предназначена для ограничения скорости обработки запросов. В ней определяется, требуется ли пропускать избыточные запросы в пределах всплеска без задержки.
Группа, включающая в себя параметры, рассмотренные в разделе Параметр limit_req.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
limit_requests — группа параметров, описанных в разделе Пaраметр limit_requests.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
robot_mitigation
Группа параметров robot_mitigation предназначена для противодействия роботам отправляющим HTTP запросы, а также сканированию портов. Принцип работы основан на отправке клиенту ответов на его запросы, которые должны быть интерпретированы клиентом требуемым образом, для того чтобы модуль мог определить допустимую активность.
Группа, включающая в себя параметры, рассмотренные в разделе Параметр robot_mitigation.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
ip_behavior
Группа параметров ip_behavior предназначена для мониторинга поведения пользователей при доступе к серверу. ip_behavior в основном используется с другими группами параметров безопасности, такими как limit_req и robot_mitigation. ip_behavior поддерживает обнаружение доступа только через url.
Группа, включающая в себя параметры, рассмотренные в разделе Параметр ip_behavior.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
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.
Группа, включающая в себя параметры, рассмотренные в разделе Параметр cookie_poisoning.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
spnego
Группа параметров spnego предназначена для аутентификации kerberos.
Группа, включающая в себя параметры, рассмотренные в разделе Параметр spnego.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
gzip
Группа параметров gzip позволяет осуществлять сжатие ответа одноименным методом.
Группа, включающая в себя параметры, рассмотренные в разделе Параметр gzip.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
async_io
Группа параметров, отвечающих за настройку файлового асинхронного ввода-вывода.
Группа, включающая в себя параметры, рассмотренные в разделе Параметр async_io.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
log_masking — группа параметров log_masking предназначена для задания правил маскирования чувствительной информации в логах событий и логов транзакции фильтров безопасности.
Группа параметров, описанных в разделе Параметр log_masking_rules.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
logging — группа параметров logging предназначена для задания параметров отправки событий конфигуратора.
Группа параметров, описанных в разделе Параметр logging.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
healthcheck_dynamic - группа параметров healthcheck_dynamic предназначена для настройки динамической генерации ответов на запросы о текущем состоянии экземпляра или сервиса, объявленного в конфигурации.
Группа параметров, описанных в разделе Пaраметр healthcheck_dynamic.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
pipelined_requests — в значении параметра указывается признак запрета использования HTTP pipelined requests для входящих запросов клиента. Если установлено значение off, то в случае получения нескольких pipelined запросов будет обработан только первый, после чего соединение будет закрыто и в логах появится сообщение об ошибке.
Возможные значения:
on;
off.
По умолчанию: on.
http2_only — включение ограничения приема входящих соединений только по протоколу http2.
Возможные значения:
on;
off.
По умолчанию: off.
keepalive_time — ограничивает максимальное время, в течение которого могут обрабатываться запросы в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса.
Возможные значения: текстовое значение с суффиксом:
ms — миллисекунда;
s — секунда;
m — минута;
h — час;
d — день;
w — неделя;
M — месяц (30 дней);
y — год (365 дней).
По умолчанию: 1h.
log_masking_rules
В значении параметра могут быть определены правила маскирования данных в заголовках и телах запросов/ответов.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
log_type
Тип логов.
Возможные значения:
all — все типы
security — логи транзакций фильтра безопасности
event — логи событий.
По умолчанию: all
object
Объект, к которому применяется маскирование
Возможные значения:
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.
По умолчанию: on.
mask_symbol
Символ, который используется для замены.
Возможные значения: определяет какой символ будет использоваться для замены.
По умолчанию: *.