Тип сервиса HttpProxy#
В контексте service объявляется тип сервиса, соответствующий service_http_proxy:
service:
service_http_proxy:
Обязательные параметры:
idИдентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлах, хранящих информацию о сервисе.
Значение параметра
idдолжно быть уникальным.Идентификатор может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание « _ «.
Количество сервисов не ограничено конфигуратором явно.
- id: 1 - id: my_service_oneТип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
nameТехнологическое название сервиса, используемое для идентификации сервиса в логах транзакций.
Значение параметра
nameдолжно быть уникальным.Обязательно в случае:
optional: event_hook: ...Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
urlВ значении параметра определяется относительный
url, на котором будет работать сервис. Есть возможность использовать регулярное выражение.url: /my_service_urlЗначение параметра
urlдолжно быть уникальным.Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
В случае, если проксирование осуществляется с использованием сервиса типа
service_main_proxy:upstream_group_id: <value> use_main_upstream_groups: trueВ случае, если проксирование осуществляется напрямую через сервис, соответствующего типа:
upstream_group_id: <value> upstream_groups:Описание группы серверов и параметров соединения с backend.
Последовательность, включающая в себя параметры, описанные в разделе Параметр upstream.
Тип параметра:
В случае, если проксирование осуществляется с использованием сервиса типа service_main_proxy:
upstream_group_id: <value> use_main_upstream_groups: trueВ случае, если проксирование осуществляется напрямую через сервис, соответствующего типа:
upstream_group_id: <value_name_group> upstream_groups: - id: <value_name_group> servers: - server: <value_ip_address>
По умолчанию: не имеет значения по умолчанию.
allowed_queriesГруппа параметров, описанных в разделе «Параметр allowed_queries», используемых для указания разрешенных методов запроса и параметров запроса.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
service:
service_http_proxy:
Пример минимальной настройки с проксированием на upstream группу, определенную в main сервисе:
service_main_proxy:
- id: main
listen:
- port: 8080
hostname:
- localhost
- 127.0.0.1
url: /
upstream_groups:
- id: <main_group_id>
servers:
- server: <ip>
service_http_proxy:
- id: 1
url: /my_service_url
upstream_group_id: <main_group_id>
use_main_upstream_groups: true
allowed_queries:
- method: post
Пример минимальной настройки с проксированием на upstream группу, определенную в сервисе:
- id: 1
url: /my_service_url
upstream_group_id: <value_name_group>
upstream_groups:
- id: <value_name_group>
servers:
- server: <value_ip_address>
allowed_queries:
- method: post
Опциональные параметры:
profile_versionВ значении параметра определяется версия профиля данного сервиса.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
descriptionПараметр предназначен для хранения строки с описанием сервиса.
Значение параметра
descriptionне является уникальным.Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
listenПараметр
listenявляется обязательным только для сервиса типаservice_main_proxy. Для сервисов иных типов параметрlistenопционален.В случае, если параметр
listenне указан (имеется ввиду наличие данного параметра в сервисе типаservice_main_proxyи отсутствие в сервисах иных типов), для взаимодействия между сервисами используются unix-сокеты.Последовательность, включающая в себя параметры, описанные в разделе Параметр listen.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
hostnameВ значении параметра указывается виртуальное имя сервера.
Тип параметра: последовательность строковых значений.
По умолчанию:
hostname - localhostoptionalГруппа
optionalиспользуется в сервисе для:вызова различных таймаутов;
настройки сессии;
ограничения по размеру лимита тела запроса/ответа;
вызова различных утилит;
и др.
Группа, включающая в себя параметры, описанные в разделе «Параметр HttpProxy — optional».
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
transformationsПараметр
transformationsпредназначен для преобразования заголовков при выполнении заданных условий.Последовательность, включающая в себя параметры, описанные в разделе «Фильтр Transformations».
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
filtersГруппа, включающая в себя следующие параметры:
фильтр modsecurity — позволяет проверить download/upload трафик на наличие угроз (например sql-injection), содержащихся в методе, заголовках, теле и др.;
фильтр icap — позволяет проверить download/upload трафик на наличие вирусов. Проверка на вирусы осуществляется путем отправки вложения внешнему антивирусу.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
validatorsВалидация тела запроса/ответа.
Группа, включающая в себя параметры, описанные в разделе Настройка валидации в SOWA.
В качестве альтернативы использования механизмов
validation_jsonиvalidation_wsdl_xsdрекомендуется использовать действияJsonValidationиXsdValidationсоответственно.Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
modifiersГруппа
modifiersпозволяет изменять содержимое заголовков запроса и ответа.Группа, включающая в себя параметры, описанные в разделе Параметр modifiers.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
postprocessorsПостобработчик
postprocessor_errorпредназначен для формирования сообщения об ошибке для клиента по указанному шаблону.Группа, включающая в себя параметры, описанные в разделе Постобработчик postprocessor_error.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
chainsГруппа, включающая в себя параметры, описанные в разделе Параметр chains_request.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
server_streamingТип параметра: последовательность целочисленных значений.
По умолчанию: не имеет значения по умолчанию.
stream_typeТип параметра: текстовое значение.
«SSE»;
«JSON_LINES»;
«PROTOBUF_HTTP»;
«GRPC».
message_delimiterИспользуется в случае:
stream_type: 'JSON_LINES'
или
stream_type: 'SSE'.
Тип параметра: текстовое значение.
«LF» (\n);
«DOUBLE_LF» (\n\n);
«CRLF» (\r\n);
«DOUBLE_CRLF» (\r\n\r\n);
«NONE» (допустимо для JSON_LINES, но не рекомендуется - так как в этом случае происходит попыттка определить сообщениие пос структуре);
«AUTO».
dont_chunk_responseОпределяет, отключать ли кодирование фрагментированной передачи в ответе клиента.
Возможные значения:
true;
false.
По умолчанию:
dont_chunk_response: falseparser_enable_conditionТип параметра: последовательность целочисленных значений.
По умолчанию: не имеет значения по умолчанию.
varВ значении параметра указывается анализируемая переменная. Обязательный параметр.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
valВ значении параметра указывается ожидаемое значение анализируемой переменной.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
operatorВ значении параметра указывается операнд сравнения. Обязательный параметр.
Тип параметра: текстовое значение:
«=» — посимвольное равенство;
«!=» — посимвольное неравенство;
«<=» — меньше или равно, только для числовых значений;
«>=» — больше или равно, только для числовых значений;
«>» — больше, только для числовых значений;
«<» — меньше, только для числовых значений;
«in» — вхождение в перечисление, элементы задаются через запятую, сравнение с элементами посимвольное;
«not_in» — отсутствие вхождения в перечисление, элементы задаются через запятую, сравнение с элементами посимвольное;
«~» — регулярное выражение с учетом регистра;
«~*» — регулярное выражение без учета регистра;
«!~» — негативное регулярное выражение с учетом регистра;
«!~*» — негативное регулярное выражение без учета регистра;
«ip_range» — диапазон ip адресов, задаваемый начальным и конечным адресом через «-«;
«!ip_range» — отсутствие в диапазоне ip адресов;
«dn_mask» — маска доменного имени;
«!dn_mask» — несоответствие маске доменного имени.
По умолчанию: не имеет значения по умолчанию.
service:
service_http_proxy:
Пример настройки с проксированием через main сервис:
service_main_proxy:
- id: main
listen:
- port: 8080
hostname:
- localhost
- 127.0.0.1
url: /
upstream_groups:
- id: <main_group_id>
servers:
- server: <ip>
service_http_proxy:
- id: 1
name: 1.1
description: Сервис 1
hostname:
- localhost
url: ^\/my_service_url$
use_main_upstream_groups: true
upstream_group_id: <main_group_id>
allowed_queries:
- method: post
params:
- name: "cmd"
pattern: "START"
- name: "name"
pattern: "balance|registration"
validators:
validator_json:
request:
- schema: schemes/json/1/v1/BalanceGetRequestV1.json
method: post
params:
- name: "cmd"
operator: "="
pattern: "START"
- name: "name"
operator: "="
pattern: "balance"
- schema: schemes/json/1/v1/CreateRequestV1.json
method: post
params:
- name: "cmd"
operator: "="
pattern: "START"
- name: "name"
operator: "="
pattern: "registration"
response:
- schema: schemes/json/1/v1/BalanceGetResponseV1.json
method: post
params:
- name: "cmd"
operator: "="
pattern: "START"
- name: "name"
operator: "="
pattern: "balance"
response_code:
operator: "!~"
pattern: "(?:500|502|503|504)"
- schema: schemes/json/1/v1/CreateResponseV1.json
method: post
params:
- name: "cmd"
operator: "="
pattern: "START"
- name: "name"
operator: "="
pattern: "registration"
response_code:
operator: "!~"
pattern: "(?:500|502|503|504)"
transformations:
!include: ufs_transforms.yml
optional:
!include: evh.yml
!include: proxy_ssl.yml
session_timeout: 60
client_header_timeout: 60s
client_body_timeout: 60s
send_timeout_to_client: 60s
proxy_connect_timeout: 60s
proxy_read_timeout: 60s
proxy_send_timeout: 60s
limit_req:
enabled: true
target: request_method
rate: 180
burst: 300
status_code: 429
upload_size_limit:
size: 50k
drop: "off"
download_size_limit:
size: 50k
drop: "off"
Пример настройки с проксированием через сервис соответствующего типа:
- id: 1
name: 1.1
description: Сервис 1
listen:
- port: 8080
ssl:
certificate: server_dev.cer
certificate_key: server_dev.key
client_certificate: ca_dev.cer
verify_client: 'on'
verify_depth: 2
protocols:
- TLSv1.2
ciphers:
- value:
- "HIGH"
- prefix: "!"
value:
- "aNULL"
- value:
- "NULL-SHA256"
session_cache:
type: "shared"
name: "TLS"
size: 20m
hostname:
- localhost
url: ^\/my_service_url$
upstream_group_id: <value_name_group>
upstream_groups:
- id: <value_name_group>
servers:
- server: <value_ip_address>
allowed_queries:
- method: post
params:
- name: "cmd"
pattern: "START"
- name: "name"
pattern: "balance|registration"
validators:
validator_json:
request:
- schema: schemes/json/1/v1/BalanceGetRequestV1.json
method: post
params:
- name: "cmd"
operator: "="
pattern: "START"
- name: "name"
operator: "="
pattern: "balance"
- schema: schemes/json/1/v1/CreateRequestV1.json
method: post
params:
- name: "cmd"
operator: "="
pattern: "START"
- name: "name"
operator: "="
pattern: "registration"
response:
- schema: schemes/json/1/v1/BalanceGetResponseV1.json
method: post
params:
- name: "cmd"
operator: "="
pattern: "START"
- name: "name"
operator: "="
pattern: "balance"
response_code:
operator: "!~"
pattern: "(?:500|502|503|504)"
- schema: schemes/json/1/v1/CreateResponseV1.json
method: post
params:
- name: "cmd"
operator: "="
pattern: "START"
- name: "name"
operator: "="
pattern: "registration"
response_code:
operator: "!~"
pattern: "(?:500|502|503|504)"
transformations:
!include: ufs_transforms.yml
optional:
!include: evh.yml
!include: proxy_ssl.yml
session_timeout: 60
client_header_timeout: 60s
client_body_timeout: 60s
send_timeout_to_client: 60s
proxy_connect_timeout: 60s
proxy_read_timeout: 60s
proxy_send_timeout: 60s
limit_req:
enabled: true
target: request_method
rate: 180
burst: 300
status_code: 429
upload_size_limit:
size: 50k
drop: "off"
download_size_limit:
size: 50k
drop: "off"
HttpPrоxy - allowed_queries#
Обязательные параметры:
methodВ значении параметра указывается разрешенный метод запроса для сервиса.
Возможные значения:
get;
head;
post;
put;
options;
trace;
patch;
delete.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
decodeUrlВ значении параметра определяется, нужно ли декодировать параметры url или нет.
Тип параметра: логическое значение:
true;
false.
По умолчанию: По умолчанию mds использует параметры запроса с url-декодированием.
strict_params_checkВ значении параметра определяется, нужно ли блокировать запросы с неописанными параметрами и запросы без параметров.
Тип параметра: логическое значение:
true;
false.
По умолчанию:
strict_params_check: falseparamsВ значении параметра определяется множество допустимых параметров запроса, а также, множество допустимых значений, для каждого из параметров. Заданные параметры не являются обязательными, но требуют наличия хотя бы одного допустимого параметра в запросе.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
nameВ значении параметра указывается имя параметра, которое используется для передачи значения на сервис.
Значение параметра
nameдолжно быть уникальным.Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
patternВ значении параметра
patternопределяется значение, которое может принимать параметр name. Не чувствительно к регистру.Имеется возможность использования регулярного выражение.
Для использования символов:
\ ^ $ . | ? * + ( ) [ ] { } - в явном виде, необходимо их экранирование.
Символ \ экранируется только тогда, когда находится в кавычках.
В примере ниже показывается, что экранируется связка \ с иным элементом (например #):
- name: "name_1" pattern: "[^\\#\\$\\%\\&\\(\\)\\*\\+\\,\\-\\.\\:\\;\\<\\=\\>\\?\\^\\_\\{\\|\\}\\~\\@]+" - name: "name_2" pattern: "[^ЁёА-я]+"Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
HttpPrоxy - optional#
В разделе приведено описание опциональных параметров для сервиса HttpProxy.
Опциональные параметры:
service_cacheГруппа параметров
service_cacheпредназначена для расширенного использования параметров сервиса типа service_cache. В секции service должен быть объявлен хотя бы один сервис типа service_cache.version: 2.0.3 profile: profile_name system: wrk_count: 4 conn_count: 2048 service: service_cache: storages: - name: testname - name: testname2 service_http_proxy: - id: 1 ... optional: service_cache: ...Группа, включающая в себя параметры, описанные в разделе «Параметр service_cache».
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
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В значении параметра указывается формат логирования.
Тип параметра: текстовое значение.
По умолчанию: значение по умолчанию отсутствует.
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: "off"session_timeoutВ значении параметра указывается таймаут сессии.
Тип параметра: целочисленное значение.
По умолчанию:
session_timeout: 60session_cookie_nameВ значении параметра указывается имя cookies сессии.
Тип параметра: строковое значение.
По умолчанию:
session_cookie_name: SENGINX-SESSION-IDsession_redirect_timeoutВ значении параметра устанавливается время ожидания после отправки SEnginx ответа перенаправления клиенту в секундах.
Значение в секундах. Значение не должно быть больше
session_timeout.Тип параметра: целочисленное значение.
По умолчанию:
session_redirect_timeout: 5session_showВ значении параметра определяется возможность просматривать информацию о текущих сессиях.
Тип параметра:
true;
false.
По умолчанию:
session_show: falsesession_cacheВ значении параметра определяется размер кэша для ssl/tls сессии.
Тип параметра: группа параметров и их значения.
По умолчанию: значение по умолчанию оценивается автоматически.
Обязательные параметры:
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: 4knext_upstreamНастройка
proxy_next_upstreamопределяет, в каких случаях запрос будет передан следующему серверу.Тип параметра: группа параметров и их значения.
По умолчанию: значение по умолчанию оценивается автоматически.
Обязательные параметры:
timeoutЗначение параметра ограничивает время, в течение которого возможна передача запроса следующему серверу. Значение 0 отключает это ограничение.
Тип параметра: целочисленное значение.
По умолчанию: не имеет значения по умолчанию.
triesЗначение параметра ограничивает число допустимых попыток для передачи запроса следующему серверу. Значение 0 отключает это ограничение.
Тип параметра: целочисленное значение.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
codesСписок негативных кодов, ориентируясь на который модуль переключает upstream.
Используется в случае:
codes_seqпустое.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
codes_seqЗадает последовательность кодов, определяющих, когда запрос будет передан следующему серверу.
Используется в случае:
codesпустое.
Тип параметра: последовательность текстовых значений.
„error“ - произошла ошибка соединения с сервером, передачи ему запроса или чтения заголовка ответа сервера;
„timeout“ - произошел таймаут во время соединения с сервером, передачи ему запроса или чтения заголовка ответа сервера;
„invalid_header“ - сервер вернул пустой или неверный ответ;
„http_500“ - сервер вернул ответ с кодом 500;
„http_502“ - сервер вернул ответ с кодом 502;
„http_503“ - сервер вернул ответ с кодом 503;
„http_504“ - сервер вернул ответ с кодом 504;
„http_403“ - сервер вернул ответ с кодом 403;
„http_404“ - сервер вернул ответ с кодом 404;
„http_429“ - сервер вернул ответ с кодом 429;
„non_idempotent“ - обычно запросы с неидемпотентным методом (POST, LOCK, PATCH) не передаются на другой сервер, если запрос серверу группы уже был отправлен; включение параметра явно разрешает повторять подобные запросы;
„off“ - запрещает передачу запроса следующему серверу.
По умолчанию:
codes_seq: error timeout http_429
file_upload_limitВ значении параметра указывается ключ для сброса TCP-соединения, если будет осуществлена попытка загрузки файла на сервер с установленным заголовком «multipart/form-data».
Механизм позволяет избежать DOS-атак, осуществляемых посредством передачи файлов большого объема (включает ограничение загрузки файла по заголовку типа контента).
Тип параметра:
«on»;
«off».
По умолчанию:
file_upload_limit: "on"upload_size_limitВ значении параметра определяется ограничение размера тела запроса.
Тип параметра: группа параметров и их значения.
По умолчанию:
size: 1MbОбязательные параметры:
sizeВ значении параметра задается максимальный размер тела запроса.
Тип параметра: текстовое значение с суффиксом:
число без суффикса — байты;
k / K — килобайты;
m / M — мегабайты.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
dropВ значении параметра определяется, нужно ли сбрасывать соединение при превышении size.
Тип параметра:
«on»;
«off».
По умолчанию: не имеет значения по умолчанию.
enableВ значении параметра определяется, включать ли ограничение размера тела запроса.
Тип параметра: логическое значение:
true;
false.
По умолчанию:
enable: true
upload_size_limit: size: 40M drop: 'on' enable: truedownload_size_limitВ значении параметра определяется ограничение размера тела ответа.
Используется в случае:
server_streamingне задан.
Тип параметра: группа параметров и их значения.
По умолчанию: 1Mb.
Обязательные параметры:
sizeВ значении параметра задается максимальный размер тела запроса.
Тип параметра: текстовое значение с суффиксом:
число без суффикса — байты;
k / K — килобайты;
m / M — мегабайты.
По умолчанию: 1Mb.
Опциональные параметры:
dropВ значении параметра определяется, нужно ли сбрасывать соединение при превышении size.
Тип параметра:
«on»;
«off».
По умолчанию: не имеет значения по умолчанию.
statusВ значении параметра задается статус код при превышении размера тела ответа.
Тип параметра: текстовое значение.
По умолчанию:
status: 413
download_size_limit: size: 50k drop: "off" status: 413http_versionВ значении параметра указывается версия протокола HTTP для проксирования.
Внимание! Ряд функций недоступен при указании HTTP2.
Тип параметра:
1.0;
1.1.
По умолчанию:
http_version: 1.0cookie_domainВ значении параметра задается текст, который нужно изменить в атрибуте domain полей Set-Cookie заголовка ответа проксируемого сервера.
Тип параметра: группа параметров и их значения.
По умолчанию: по умолчанию параметр
cookie_domainотключен.Обязательные параметры:
fromТекст, который нужно изменить в атрибуте
domain.Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
toТекст, на который нужно будет изменить.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
Предположим, проксируемый сервер вернул поле заголовка Set-Cookie с атрибутом domain=localhost. Тогда оно будет заменено на значение example.org:
cookie_domain: from: localhost to: example.orgcookie_flagsВ значении параметра задается один или несколько, но не более четырех флагов (
flag) для cookie из следующего перечня флагов: nosecure, nohttponly, nosamesite, secure, httponly, samesite=strict, samesite=lax, samesite=none. В качестве cookie задаются текст, параметры и их комбинации. В случае необходимости использования регулярного выражения, ему должен предшествовать специальный символ „~“ , который должен быть окружен одинарными кавычками. В качестве флага (flag) можно использовать текст, переменные и их комбинации. В конфигурации может быть указанно несколько директив cookie_flags.Недоступно в случае указания http_version = 2.0.
Используется в случае:
http_version is None;
http_version not in [2.0].
Тип параметра: группа параметров и их значения.
По умолчанию: по умолчанию параметр
cookie_flagsотключен.Обязательные параметры:
cookieВ значении параметра указывается имя
cookie.Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
flagВ значении параметра указывается флаг, который необходимо присвоить указанному в предыдущем параметре cookie.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
Предположим, необходимо указать несколько директив cookie_flags, использовать переменную и регулярное выражение:
optional: set_variable: - name: myvar value: "httponly" cookie_flags: # В качестве флага можно использовать текст, переменные и их комбинации - cookie: cookie1 flag: $myvar - cookie: '~' cookie2 flag: no$myvarcookie_pathВ значении параметра задается текст, который надо заменить в атрибуте
pathполей Set-Cookie заголовка ответа проксируемого сервера.Директиву также можно задать при помощи регулярных выражений. При этом путь должен начинаться либо с символа “~”, если при сравнении следует учитывать регистр символов, либо с символов “~*”, если регистр символов учитывать не нужно. Регулярное выражение может содержать именованные и позиционные выделения, а замена — ссылаться на них:
cookie_path: - from: ~^/BLABLA/([^/]+) to: /sowa/$1На одном уровне может быть указано несколько директив
cookie_path:cookie_path: - from: /one/ to: / - from: /two/ to: /Используется в случае:
http_version is None;
http_version not in [2.0].
Тип параметра: группа параметров и их значения.
По умолчанию: по умолчанию параметр
cookie_pathотключен.Обязательные параметры:
fromТекст, который нужно изменить в атрибуте
path.Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
toТекст, на который нужно будет изменить.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
Предположим, проксируемый сервер вернул поле заголовка Set-Cookie с атрибутом «path=/two/some/uri/». Перепишем атрибут в виде «path=/some/uri/»:
cookie_path: from: /two/ to: /proxy_connect_timeoutВ значении параметра задается таймаут для установления соединения с proxy-service.
Тип параметра: текстовое значение с суффиксом:
ms — миллисекунда;
s — секунда;
m — минута;
h — час;
d — день;
w — неделя;
M — месяц (30 дней);
y — год (365 дней).
По умолчанию:
proxy_connect_timeout: 60sproxy_read_timeoutВ значении параметра задается таймаут при чтении ответа
proxy-service.Тип параметра: текстовое значение с суффиксом:
ms — миллисекунда;
s — секунда;
m — минута;
h — час;
d — день;
w — неделя;
M — месяц (30 дней);
y — год (365 дней).
По умолчанию:
proxy_read_timeout: 60sproxy_send_timeoutВ значении параметра задается таймаут при передаче запроса
proxy-service.Тип параметра: текстовое значение с суффиксом:
ms — миллисекунда;
s — секунда;
m — минута;
h — час;
d — день;
w — неделя;
M — месяц (30 дней);
y — год (365 дней).
По умолчанию:
proxy_send_timeout: 60sproxy_set_bodyВ значении параметра определяется тело, которое используется для отправки запроса на backend.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
proxy_headers_hash_bucket_sizeВ значении параметра задается размер корзины для хэш-таблиц, используемых директивами proxy_set_headers и proxy_hide_headers.
Тип параметра: текстовое значение.
По умолчанию:
proxy_headers_hash_bucket_size: 64proxy_headers_hash_max_sizeВ значении параметра задается максимальный размер хэш-таблиц, используемых директивами proxy_set_headers и proxy_hide_headers.
Тип параметра: текстовое значение.
По умолчанию:
proxy_headers_hash_max_size: 512kafka_logger_idВ значении параметра определяется идентификатор сервиса для обработки события.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
opentelemetry_tracingСекция параметров телеметрии.
Секция, включающая в себя параметры, рассмотренные в разделе «Параметр opentelemetry_tracing».
Тип параметра: секция параметров и их значения.
По умолчанию: значения группы задаются пользователем.
max_headersЗадаёт максимальное количество заголовков в клиентском запросе.
Тип параметра: целочисленное значение.
По умолчанию:
max_headers: 500security_headersГруппа параметров
security_headersпредназначена для определения безопасных заголовков ответа.Группа, включающая в себя параметры, описанные в разделе «Параметр security_headers».
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
exclude_req_statexclude_resp_statВ значениях параметров исключаются сервисы из статистики учета реквестов/респонсов.
Параметры подробно рассмотрены в разделе Параметр exclude_stat.
Тип параметра: последовательность строковых значений.
По умолчанию: не имеет значения по умолчанию.
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.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
gzipГруппа параметров
gzipпозволяет осуществлять сжатие ответа одноименным методом.Группа, включающая в себя параметры, рассмотренные в разделе Параметр gzip.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
event_hookГруппа параметров
event_hookпроизводит журналирование событий.Группа, включающая в себя параметры, рассмотренные в разделе Параметр event_hook.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
client_body_buffer_sizeclient_body_in_file_onlyclient_body_in_single_bufferclient_header_buffer_sizelarge_client_header_buffersoutput_bufferssubrequest_output_buffer_sizeproxy_buffer_sizeproxy_bufferingproxy_buffersproxy_busy_buffers_sizeproxy_request_bufferingСекция, включающая в себя параметры, рассмотренные в разделе Параметр buffers.
Тип параметра: секция параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
async_ioГруппа параметров отвечающих за настройку файлового асинхронного ввода-вывода.
Группа, включающая в себя параметры, рассмотренные в разделе Параметр async_io.
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
req_gunzipСекция, включающая в себя параметры, рассмотренные в разделе Параметр req_gunzip.
Тип параметра: секция параметров и их значения.
По умолчанию: значения группы задаются пользователем.
response_gunzipСекция, включающая в себя параметры, рассмотренные в разделе Параметр response_gunzip.
Тип параметра: секция параметров и их значения.
По умолчанию: значения группы задаются пользователем.
log_masking- группа параметровlog_maskingпредназначена для задания правил маскирования чувствительной информации в логах событий и логов транзакции фильтров безопасности.Группа параметров, описанных в разделе «Параметр log_masking_rules».
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
http2- группа параметровhttp2позволяет регулировать настройки входящих подключений по протоколу http2.Группа параметров, описанных в разделе Параметр http2.
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
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.
grpc_error_processing— флаг, включающий генерацию ошибочных ответов с mapping HTTP статусов в GRPC статусы.Доступно при указании http_version = 2.0.
Возможные значения:
true;
false.
По умолчанию: false.
proxy_sslГруппа параметров, задающая настройки ssl/tls соединения с upstream (backend).
Группа, включающая в себя параметры, рассмотренные в разделе «Параметр upstream_ssl».
Тип параметра: секция параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
set_variableВ значении параметра могут быть определены имена переменных и их значения.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
nameВ значении параметра указывается имя переменной.
Тип параметра: текстовое значение.
valueВ значении параметра указывается значение переменной.
Тип параметра: текстовое значение.
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Символ, который используется для замены.
Тип параметра: определяет какой символ, будет использоваться для замены.
По умолчанию: *.
pass_request_bodyВ значении параметра определяется, включать или выключать передачу тела запроса на upstream.
При отключении передачи тела запроса обязательно необходимо занулить заголовок content-length.
Возможные значения:
true;
false.
Значение по умолчанию:
pass_request_body:trueredirectВ значении параметра возвращается временное перенаправление с кодом 302, 307 или постоянное перенаправление с кодом 301, 308.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
Обязательные параметры:
fromВ значении параметра задается регулярное значение URI запроса.
Тип параметра: текстовое значение.
toВ значении параметра определяется заменяющая строка.
Тип параметра: текстовое значение.
Опциональные параметры:
typeВ значении параметра определяется тип перенаправления. Допускается указание нескольких типов перенаправления.
Тип параметра: Текстовое значение.
redirect — статус код 302;
permanent — статус код 301;
redirect_temp — статус код 307;
redirect_perm — статус код 308.
По умолчанию:
type: redirectconditionВ значении параметра задается выражение, включающее в себя следующие параметры: var, operator, val. Перенаправление будет осуществлено в случае выполнения заданного условия.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
varВ значении параметра указывается обозначение имени переменной.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
operatorВ значении параметра задается оператор выражения.
Тип параметра: текстовое значение.
„=“;
„!=“;
„~“;
„~*“;
„!~“;
„!~*“.
По умолчанию: не имеет значения по умолчанию.
valВ значении параметра указывается значение переменной.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.