Тип сервиса 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 указываются разрешенные методы запроса и параметры запроса. Работоспособно, в случае использования фильтра mds:
filters: filter_mds: enabled: true ...Иными словами, если mds явно не выключен, то проверка будет осуществляться.
Последовательность, включающая в себя параметры, описанные в разделе "HttpProxy - allowed_queries".
allowed_queries: - method: post params: - name: "cmd" pattern: "START" - name: "name" pattern: "balance|registration" - method: optionsТип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
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
url: /my_service_url
upstream_group_id: <main_group_id>
use_main_upstream_groups: true
allowed_queries:
- method: post
Пример минимальной настройки с проксированием на апстрим группу, определенную в сервисе:
- 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".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
modifiers
Группа modifiers позволяет изменять содержимое заголовков запроса и ответа.
Группа, включающая в себя параметры, описанные в разделе "Параметр modifiers" в разделе "Дополнительные параметры сервисов".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
postprocessors
Постобработчик postprocessor_error предназначен для формирования сообщения об ошибке для клиента по указанному шаблону.
Группа, включающая в себя параметры, описанные в разделе "Постобработчик postprocessor_error".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
chains
Группа, включающая в себя параметры, описанные в разделе "Параметр chains_request" в разделе "Основные параметры сервисов".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
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
В значении параметра указывается имя куки сессии.
Тип параметра: строковое значение.
По умолчанию:
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.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
file_upload_limit
В значении параметра указывается ключ для сброса TCP-соединения, если будет осуществлена попытка загрузки файла на сервер с установленным заголовком "multipart/form-data".
Механизм позволяет избежать DOS-атак, осуществляемых посредством передачи файлов большого объема (включает ограничение загрузки файла по заголовку типа контента).
Тип параметра:
"on";
"off".
По умолчанию:
file_upload_limit: "on"upload_size_limit
В значении параметра определяется ограничение размера тела запроса.
Тип параметра: группа параметров и их значения.
По умолчанию:
size: 2MbОбязательные параметры:
size
В значении параметра задается максимальный размер тела запроса.
Тип параметра: текстовое значение с суффиксом:
число без суффикса - байты;
k / K - килобайты;
m / M - мегабайты.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
drop
В значении параметра определяется, нужно ли сбрасывать соединение при превышении size.
Тип параметра:
"on";
"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".
По умолчанию: не имеет значения по умолчанию.
(2.3) 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
В значении параметра определяется тело, которое используется для отправки запроса на бэкэнд.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
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
В значении параметра определяется идентификатор сервиса для обработки события.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
security_headers
Группа параметров security_headers предназначена для определения безопасных заголовков ответа.
Группа, включающая в себя параметры, описанные в разделе "Параметр security_headers".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
exclude_req_stat
exclude_resp_stat
В значениях параметров исключаются сервисы из статистики учета реквестов/респонсов.
Параметры подробно рассмотрены в разделе "Параметр exclude_stat".
Тип параметра: последовательность строковых значений.
По умолчанию: не имеет значения по умолчанию.
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".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
event_hook
Группа параметров event_hook производит журналирование событий.
Группа, включающая в себя параметры, рассмотренные в разделе "Параметр event_hook".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
client_body_buffer_size
client_body_in_file_only
client_body_in_single_buffer
client_header_buffer_size
large_client_header_buffers
output_buffers
subrequest_output_buffer_size
proxy_buffer_size
proxy_buffering
proxy_buffers
proxy_busy_buffers_size
proxy_request_buffering
Секция, включающая в себя параметры, рассмотренные в разделе "Параметр buffers".
Тип параметра: секция параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
async_io
Группа параметров отвечающих за настройку файлового асинхронного ввода-вывода.
Группа, включающая в себя параметры, рассмотренные в разделе "Параметр async_io".
Тип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
req_gunzip
Секция, включающая в себя параметры, рассмотренные в разделе "Параметр req_gunzip".
Тип параметра: секция параметров и их значения.
По умолчанию: значения группы задаются пользователем.
log_masking - группа параметров log_masking предназначена для задания правил маскирования чувствительной информации в логах событий и логов транзакции фильтров безопасности.
Группа параметров, описанных в разделе "Параметр log_masking_rules".
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
http2 - группа параметров http2 позволяет регулировать настройки входящих подключений по протоколу http2.
Группа параметров, описанных в разделе "Параметр http2".
Возможные значения: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
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.4)grpc_error_processing - флаг, включающий генерацию ошибочных ответов с маппингом HTTP статусов в GRPC статусы.
Доступно при указании http_version = 2.0.
Возможные значения:
true;
false.
По умолчанию: false.
proxy_ssl
Группа параметров, задающая настройки ssl/tls соединения с upstream'ом (backend'ом).
Группа, включающая в себя параметры, рассмотренные в разделе "Параметр upstream_ssl".
Тип параметра: секция параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
set_variable
В значении параметра могут быть определены имена переменных и их значения.
Тип параметра: последовательность параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
name
В значении параметра указывается имя переменной.
Тип параметра: текстовое значение.
value
В значении параметра указывается значение переменной.
Тип параметра: текстовое значение.
(2.2) 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
Символ, который используется для замены.
Тип параметра: определяет какой символ будет использоваться для замены.
По умолчанию: *.
redirect
В значении параметра возвращается временное перенаправление с кодом 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
В значении параметра указывается значение переменной.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.