Тип сервиса MainProxy#
Экземпляр типа сервиса service_main_proxy позволяет агрегировать множество сервисов различных типов на одном объекте типа listen.
Агрегированные сервисы также будут наследовать настройки фильтрации, upstream и др. из сервиса типа service_main_proxy.
В контексте service объявляется тип сервиса, соответствующий service_main_proxy:
service:
service_main_proxy:
Каждый сервис представляет собой последовательность, включающую в себя следующие параметры:
Обязательные параметры:
id
Идентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлов, хранящих информацию о сервисе.
Значение параметра id должно быть уникальным.
Идентификатор может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание " _ ".
Количество сервисов ограничено одним.
- id: 1 ...Тип параметра: текстовое значение.
listen
Параметр listen является обязательным только для сервиса типа service_main_proxy. Для сервисов иных типов параметр listen опционален.
В случае, если параметр listen не указан (имеется ввиду наличие данного параметра в сервисе типа service_main_proxy и отсутствие в сервисах иных типов), для взаимодействия между сервисами используются unix-сокеты.
Последовательность, включающая в себя параметры, описанные в разделе "Параметр listen".
Тип параметра: последовательность параметров и их значения.
hostname
В значении параметра указывается виртуальное имя сервера.
hostname: - localhostТип параметра: последовательность строковых значений.
url
В значении параметра определяется относительный url, на котором будет работать сервис. Есть возможность использовать регулярное выражение. Играет роль фильтра для входящих запросов.
url: /my_service_urlЗначение параметра url должно быть уникальным.
Тип параметра: строковое значение.
upstream_groups
Описание группы серверов и параметров соединения с backend.
Последовательность, включающая в себя параметры, описанные в разделе "Параметр upstream (parameter_upstream)".
service_main_proxy: - id: 1 ... upstream_groups: - id: <id_value> ssl: <ssl_value> health_check: ... load_balancing: ... servers: ...Тип параметра: последовательность параметров и их значения.
Опциональные параметры:
name
Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций.
Значение параметра name должно быть уникальным.
Обязательно в случае:
optional: event_hook: ...Тип параметра: строковое значение.
По умолчанию: значение задается пользователем.
description
Параметр предназначен для хранения строки с описанием сервиса.
Значение параметра description не является уникальным.
Тип параметра: текстовое значение.
По умолчанию: значение задается пользователем.
use_upstream_groups
Вкл./Откл. балансировки на уровне main сервиса.
Тип параметра: логическое значение:
true;
false.
По умолчанию:
use_upstream_groups: falseoptional
Группа optional используется в сервисе для:
вызова различных таймаутов;
настройки сессии;
ограничения по размеру лимита тела запроса/ответа;
вызова различных утилит;
и др.
Группа, включающая в себя параметры, описанные в разделе "MainProxy - optional".
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
filters
Группа, включающая в себя следующие параметры:
фильтр modsecurity - позволяет проверить download/upload трафик на наличие угроз (например sql-injection), содержащихся в методе, хэдорах, теле и др.;
фильтр icap - позволяет проверить download/upload трафик на наличие вирусов. Проверка на вирусы осуществляется путем отправки вложения внешнему антивирусу.
Группа, включающая в себя параметры, описанные в разделе "MainProxy - optional".
Группа параметров filters наследуется всеми сервисами, указанными после сервиса service_main_proxy. Если в последующем сервисе определена директива filters, то происходит объединение правил этого сервиса и сервиса service_main_proxy.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
validators
Валидация тела запроса/ответа.
Группа, включающая в себя параметры, описанные в разделе "Валидация".
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
modifiers
Группа modifiers позволяет изменять содержимое заголовков запроса и ответа.
Группа, включающая в себя параметры, описанные в разделе "Параметр modifiers".
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
postprocessors
Постобработчик postprocessor_error предназначен для формирования сообщения об ошибке для клиента по указанному шаблону.
Группа, включающая в себя параметры, описанные в разделе "Постобработчик postprocessor_error".
Группа параметров postprocessors наследуется всеми сервисами, указанными после сервиса service_main_proxy. Если в последующем сервисе определена директива postprocessors, то она переопределит директиву, указанную в сервисе service_main_proxy.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
version: 2.0.3
profile_version: XXX
profile: uko_web
system:
wrk_count: 4
conn_count: 4096
service:
service_main_proxy:
- id: 1
listen:
- port: 8443
ssl:
certificate: server_dev.cer
certificate_key: server_dev.key
protocols:
- TLSv1.2
ciphers_str: "HIGH:!aNULL:NULL-SHA256"
session_cache:
type: "shared"
name: "TLS"
size: 20m
hostname:
- localhost
- 127.0.0.1
url: /
optional:
file_upload_limit: off
limit_req:
enabled: false
target: src_ip
rate: 1000
burst: 2000
status_code: 429
upstream_groups:
- id: upstream_groups_v1
server: '127.0.0.1:18091'
weight: '5'
postprocessors:
!include: postprocessor_error.yml
filters:
filter_mds:
config:
SecAuditLogParts: ABFHIJKZG
custom_rules:
- ufs_rules/rules.conf
service_http_proxy:
!include: **/services.yml
MаinProxy - optional#
Опциональные параметры:
log_level
В значении параметра переопределения уровня логирования для сервиса.
Типа параметра:
debug;
info;
notice;
warn;
error;
crit;
alert;
off.
По умолчанию: Значение параметра наследуется от значения в system.
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: falsefile_upload_limit
В значении параметра указывается ключ для сброса TCP-соединения, если будет осуществлена попытка загрузки файла на сервер с установленным заголовком "multipart/form-data".
Механизм позволяет избежать DOS-атак, осуществляемых посредством передачи файлов большого объема (включает ограничение загрузки файла по заголовку типа контента).
Типа параметра:
"on";
"off".
По умолчанию:
file_upload_limit: "on"upload_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: 413http_version
В значении параметра указывается версия протокола HTTP для проксирования.
Тип параметра:
1.0;
1.1.
По умолчанию:
http_version: 1.1http_version
В значении параметра указывается версия протокола HTTP для проксирования.
Тип параметра:
1.0;
1.1.
cookie_domain
В значении параметра задается текст, который нужно изменить в атрибуте domain полей Set-Cookie заголовка ответа proxy-service.
Тип параметра: группа параметров и их значения.
По умолчанию: по умолчанию параметр cookie_domain отключен.
Обязательные параметры:
from
Текст, который нужно изменить в атрибуте domain.
Тип параметра: строковое значение.
to
Текст, на который нужно будет изменить.
Тип параметра: строковое значение.
Предположим, проксируемый сервер вернул поле заголовка Set-Cookie с атрибутом domain=localhost. Тогда оно будет заменено на значение example.org:
cookie_domain: from: localhost to: example.orgproxy_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_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: 512set_variable
В значении параметра могут быть определены имена переменных и их значения.
Тип параметра: последовательность параметров и их значения.
По умолчанию: значения последовательности задаются пользователем.
Обязательные параметры:
name
В значении параметра указывается имя переменной.
Тип параметра: текстовое значение.
value
В значении параметра указывается значение переменной.
Тип параметра: текстовое значение.
event_hook
Группа параметров event_hook производит журналирование событий.
Группа, включающая в себя параметры, описанные в разделе "Параметр event_hook".
Группа параметров event_hook наследуется всеми сервисами, указанными после сервиса service_main_proxy. Если в последующем сервисе определена директива event_hook, то она переопределит директиву, указанную в сервисе service_main_proxy.
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
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".
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
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".
Тип параметра: группа параметров и их значения.
По умолчанию: значения группы задаются пользователем.
(2.1, 2.2) 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.
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
В значении параметра указывается значение переменной.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.