Тип с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.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
index
В значении параметра указывается имя индексной страницы или файла.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
rewrite
Изменение URI в соответствии со строкой замены.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
Обязательные параметры:
from
В значении параметра указывается "что" изменить.
Тип параметра: текстовое значение.
to
В значении параметра указывается на "что" изменить.
Тип параметра: текстовое значение.
Опциональные параметры:
flag
В значении параметра указывается флаг изменения.
Тип параметра: текстовое значение.
last - завершается обработка текущего набора директив секции rewrite, после чего ищется новый location, соответствующий измененному URI;
break;
redirect - возвращает временное перенаправление с кодом 302; используется, если заменяющая строка не начинается с “http://”, “https://” или “$scheme”;
permanent - возвращает постоянное перенаправление с кодом 301.
По умолчанию: значение задается пользователем.
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, основываются на данном модуле.
Тип параметра: логическое значение:
on;
off.
По умолчанию:
session: offsession_timeout
В значении параметра указывается таймаут сессии.
Тип параметра: целочисленное значение.
По умолчанию:
session_timeout: 60ssession_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
В значении параметра задается максимальный размер тела запроса.
Тип параметра: текстовое значение с суффиксом:
число без суффикса - байты;
k / K - килобайты;
m / M - мегабайты.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
drop
В значении параметра определяется, нужно ли сбрасывать соединение при превышении size.
Тип параметра: логическое значение:
on;
off.
По умолчанию:
drop: off(2.3) enable
В значении параметра определяется, включать ли ограничение размера тела запроса.
Тип параметра: логическое значение:
true;
false.
По умолчанию:
enable: true
upload_size_limit: size: 40M drop: on enable: truedownload_size_limit
В значении параметра определяется ограничение размера тела ответа.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
Обязательные параметры:
size
В значении параметра задается максимальный размер тела запроса.
Тип параметра: текстовое значение с суффиксом:
число без суффикса - байты;
k / K - килобайты;
m / M - мегабайты.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
drop
В значении параметра определяется, нужно ли сбрасывать соединение при превышении size.
Тип параметра: логическое значение:
on;
off.
По умолчанию:
drop: off(2.3) status
В значении параметра задается статус код при превышении размера тела ответа.
Тип параметра: текстовое значение.
По умолчанию:
status: 413
download_size_limit: size: 50k drop: off status: 413set_variable
В значении параметра могут быть определены имена переменных и их значения.
Тип параметра: последовательность параметров и их значения.
По умолчанию: значения последовательности задаются пользователем.
Обязательные параметры:
name
В значении параметра указывается имя переменной.
Тип параметра: текстовое значение.
value
В значении параметра указывается значение переменной.
Тип параметра: текстовое значение.
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.
Группа, включающая в себя параметры, рассмотренные в разделе "Параметр 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".
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
(2.4) pipelined_requests - в значении параметра указывается признак запрета использования HTTP pipelined requests для входящих запросов клиента. Если установлено значение off, то в случае получения нескольких pipelined запросов будет обработан только первый, после чего соединение будет закрыто и в логах появится сообщение об ошибке.
Возможные значения:
on;
off.
По умолчанию: on.
(2.4) http2_only - включение ограничения приема входящих соединений только по протоколу http2.
Возможные значения:
on;
off.
По умолчанию: off.
(2.4) keepalive_time - ограничивает максимальное время, в течение которого могут обрабатываться запросы в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса.
Возможные значения: текстовое значение с суффиксом:
ms - миллисекунда;
s - секунда;
m - минута;
h - час;
d - день;
w - неделя;
M - месяц (30 дней);
y - год (365 дней).
По умолчанию: 1h.
(2.2) log_masking_rules
В значении параметра могут быть определены правила маскирования данных в заголовках и телах запросов/ответов.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
log_type
Тип логов.
Возможные значения:
all - все типы
security - логи транзакций фильтра безопасности
event - логи событий.
По умолчанию: all
log_type
Тип логов.
Возможные значения:
all - все типы
security - логи транзакций фильтра безопасности
event - логи событий.
По умолчанию: all
object
Объект, к которому применяется маскирование
Возможные значения:
request_header - заголовки запроса;
response_header - заголовки ответа;
request_body - тело запроса;
response_body - тело ответа.
Обязателен для заполнения.
По умолчанию: нет.
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
Символ, который используется для замены.
Возможные значения: определяет какой символ будет использоваться для замены.
По умолчанию: *.