Тип сервиса HttpProxy#
В контексте service объявляется тип сервиса, соответствующий service_http_proxy:
service:
service_http_proxy:
HttpProxy - основные параметры#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Обязательный |
Идентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлах. Значение должно быть уникальным. Количество сервисов не ограничено |
Текстовое значение (строка, число или их комбинация, разделитель — «_») |
— |
|
Опциональный (обязательный, если указан |
Технологическое название сервиса, используемое для идентификации в логах транзакций. Значение должно быть уникальным |
Строковое значение |
— |
|
Обязательный |
Относительный url, на котором будет работать сервис. Есть возможность использовать регулярное выражение. Значение должно быть уникальным |
Строковое значение |
— |
|
Обязательный |
Описание группы серверов и параметров соединения с backend. Последовательность, включающая в себя параметры, описанные в разделе Параметр upstream |
В случае проксирования через main сервис: |
— |
|
Обязательный |
Указание разрешенных методов запроса и параметров запроса |
Параметры, описанные в разделе Параметр allowed_queries |
Значения группы задаются пользователем |
|
Опциональный |
Версия профиля данного сервиса |
Текстовое значение |
— |
|
Опциональный |
Строка с описанием сервиса. Значение не является уникальным |
Текстовое значение |
— |
|
Опциональный |
Настройки прослушивания. Если не указан, используются unix-сокеты |
Последовательность параметров, описанных в разделе Параметр listen |
— |
|
Опциональный |
Виртуальное имя сервера |
Последовательность строковых значений |
|
|
Опциональный |
Таймауты, сессия, ограничения, утилиты и др. |
Параметры, описанные в разделе «HttpProxy - optional» |
— |
|
Опциональный |
Преобразование заголовков при выполнении заданных условий |
Последовательность параметров, описанных в разделе Фильтр Transformations |
— |
|
Опциональный |
Фильтр modsecurity (проверка трафика на угрозы) и фильтр icap (проверка на вирусы) |
Группа параметров и их значения |
— |
|
Опциональный (deprecated) |
Валидация тела запроса/ответа. Рекомендуется использовать JsonValidation и XsdValidation |
Параметры, описанные в разделе Настройка валидации в SOWA |
— |
|
Опциональный |
Изменение содержимого заголовков запроса и ответа |
Параметры, описанные в разделе Параметр modifiers |
— |
|
Опциональный |
Постобработчик postprocessor_error для формирования сообщения об ошибки по шаблону |
Параметры, описанные в разделе Постобработчик postprocessor_error |
— |
|
Опциональный |
Механизм для построения цепочек валидаторов любой сложности |
Параметры, описанные в разделе Параметр chains_request |
— |
|
Опциональный |
Настройки серверного стриминга |
Последовательность параметров (stream_type, message_delimiter, dont_chunk_response, parser_enable_condition) |
— |
|
Обязательный (в рамках |
Тип стриминга |
|
— |
|
Опциональный (при |
Делитель сообщений |
|
— |
|
Опциональный (в рамках |
Отключить кодирование фрагментированной передачи в ответе |
|
|
|
Опциональный (в рамках |
Условие включения парсера |
Последовательность параметров (var, val, operator) |
— |
Пример минимальной настройки с проксированием на 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
HttpProxy - optional#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Опциональный |
Переопределение уровня логирования для сервиса |
|
Наследуется от значения в |
|
Опциональный |
Группировка access журналов по кодам состояния (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500) |
|
|
|
Опциональный |
Должен ли сервис быть доступен только локально |
|
— |
|
Опциональный |
Размер кэша для ssl/tls сессии |
Группа параметров (type, name, size) |
Оценивается автоматически |
|
Обязательный (в рамках |
Тип размера кэша |
|
— |
|
Обязательный (если |
Имя размера |
Строковое значение |
— |
|
Обязательный (если |
Величина размера |
Текстовое значение с суффиксом: число (байты), |
— |
|
Опциональный |
Включение поддержки http сессии |
|
|
|
Опциональный |
Таймаут сессии |
Целочисленное значение |
|
|
Опциональный |
Имя куки сессии |
Текстовое значение |
|
|
Опциональный |
Время ожидания после отправки SEnginx ответа перенаправления клиенту в секундах. Не должно быть больше |
Целочисленное значение |
|
|
Опциональный |
Возможность просматривать информацию о текущих сессиях |
|
|
|
Опциональный |
Таймаут при чтении заголовка запроса клиента |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Таймаут при чтении тела запроса клиента |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Максимальное число запросов, которые можно сделать по одному keep-alive соединению |
Целочисленное значение |
|
|
Опциональный |
Таймаут при передаче ответа клиенту (между двумя операциями записями) |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Ограничение размера тела запроса |
Группа параметров (size, drop, enable) |
|
|
Обязательный (в рамках |
Максимальный размер тела запроса |
Текстовое значение с суффиксом: число (байты), |
— |
|
Опциональный (в рамках |
Сброс соединения при превышении size |
|
|
|
Опциональный (в рамках |
Включение ограничения размера тела запроса |
|
|
|
Опциональный |
Ограничение размера тела ответа. Используется, если |
Группа параметров (size, drop, status) |
|
|
Обязательный (в рамках |
Максимальный размер тела ответа |
Текстовое значение с суффиксом: число (байты), |
— |
|
Опциональный (в рамках |
Сброс соединения при превышении size |
|
|
|
Опциональный (в рамках |
Статус код при превышении размера тела ответа |
Текстовое значение |
|
|
Опциональный |
Версия протокола HTTP для проксирования. Внимание! Ряд функций недоступен при указании HTTP2 |
|
|
|
Опциональный |
Текст, который нужно изменить в атрибуте domain полей Set-Cookie заголовка ответа проксируемого сервера |
Группа параметров (from, to) |
Отключен |
|
Обязательный (в рамках |
Текст, который нужно изменить в атрибуте |
Строковое значение |
— |
|
Обязательный (в рамках |
Текст, на который нужно будет изменить |
Строковое значение |
— |
|
Опциональный |
Один или несколько флагов (nosecure, nohttponly, nosamesite, secure, httponly, samesite=strict, samesite=lax, samesite=none) для cookie. Недоступно при |
Группа параметров (cookie, flag) |
Отключен |
|
Обязательный (в рамках |
Имя |
Строковое значение |
— |
|
Обязательный (в рамках |
Флаг, который необходимо присвоить указанному cookie |
Строковое значение |
— |
|
Опциональный |
Текст, который надо заменить в атрибуте |
Группа параметров (from, to) |
Отключен |
|
Обязательный (в рамках |
Текст, который нужно изменить в атрибуте |
Строковое значение |
— |
|
Обязательный (в рамках |
Текст, на который нужно будет изменить |
Строковое значение |
— |
|
Опциональный |
Таймаут для установления соединения с proxy-service |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Таймаут при чтении ответа proxy-service |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Таймаут при передаче запроса proxy-service |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Тело, которое используется для отправки запроса на backend |
Текстовое значение |
— |
|
Опциональный |
Размер корзины для хэш-таблиц, используемых директивами proxy_set_headers и proxy_hide_headers |
Текстовое значение |
|
|
Опциональный |
Максимальный размер хэш-таблиц, используемых директивами proxy_set_headers и proxy_hide_headers |
Текстовое значение |
|
|
Опциональный |
Идентификатор сервиса для обработки события |
Текстовое значение |
— |
|
Опциональный |
Секция параметров телеметрии |
Параметры, описанные в разделе Параметр opentelemetry_tracing |
Значения группы задаются пользователем |
|
Опциональный |
Максимальное количество заголовков в клиентском запросе |
Целочисленное значение |
|
|
Опциональный |
Определение безопасных заголовков ответа |
Параметры, описанные в разделе Параметр security_headers |
— |
|
Опциональный |
Исключение сервисов из статистики учета реквестов/респонсов |
Последовательность строковых значений. Параметры описаны в разделе Параметр exclude_stat |
— |
|
Опциональный |
Ограничение скорости обработки запросов |
Параметры, описанные в разделе Параметр limit_req |
— |
|
Опциональный |
Ограничение запросов |
Параметры, описанные в разделе Параметр limit_requests |
— |
|
Опциональный |
Противодействие роботам и сканированию портов |
Параметры, описанные в разделе Параметр robot_mitigation |
— |
|
Опциональный |
Мониторинг поведения пользователей при доступе к серверу |
Параметры, описанные в разделе Параметр ip_behavior |
— |
|
Опциональный |
Отслеживание заголовков Set-Cookies и значений cookie в ответе. Зависит от session_module |
Параметры, описанные в разделе Параметр cookie_poisoning |
— |
|
Опциональный |
Сжатие ответа методом gzip |
Параметры, описанные в разделе Параметр gzip |
— |
|
Опциональный |
Журналирование событий |
Параметры, описанные в разделе Параметр event_hook |
— |
|
Опциональный |
Настройка файлового асинхронного ввода-вывода |
Параметры, описанные в разделе Параметр async_io |
— |
|
Опциональный |
Параметры req_gunzip |
Параметры, описанные в разделе Параметр req_gunzip |
Значения группы задаются пользователем |
|
Опциональный |
Параметры response_gunzip |
Параметры, описанные в разделе Параметр response_gunzip |
Значения группы задаются пользователем |
|
Опциональный |
Правила маскирования чувствительной информации в логах |
Параметры, описанные в разделе Параметр log_masking_rules |
— |
|
Опциональный |
Настройки входящих подключений по протоколу http2 |
Параметры, описанные в разделе Параметр http2 |
— |
|
Опциональный |
Параметры отправки событий конфигуратора |
Параметры, описанные в разделе Параметр logging |
— |
|
Опциональный |
Динамическая генерация ответов на запросы о состоянии экземпляра или сервиса |
Параметры, описанные в разделе Параметр healthcheck_dynamic |
— |
|
Опциональный |
Запрет использования HTTP pipelined requests для входящих запросов |
|
|
|
Опциональный |
Ограничение приема входящих соединений только по протоколу http2 |
|
|
|
Опциональный |
Максимальное время обработки запросов в рамках keep-alive соединения |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Генерация ошибочных ответов с mapping HTTP статусов в GRPC статусы. Доступно при |
|
|
|
Опциональный |
Настройки ssl/tls соединения с upstream (backend) |
Параметры, описанные в разделе Параметр upstream_ssl |
— |
|
Опциональный |
Определение имен переменных и их значений |
Последовательность параметров (name, value) |
— |
|
Обязательный (в рамках |
Имя переменной |
Текстовое значение |
— |
|
Обязательный (в рамках |
Значение переменной |
Текстовое значение |
— |
|
Опциональный |
Правила маскирования данных в заголовках и телах запросов/ответов |
Последовательность параметров и их значения |
— |
|
Опциональный (в рамках |
Тип логов |
|
|
|
Обязательный (в рамках |
Объект, к которому применяется маскирование |
|
— |
|
Обязательный (если |
Имя заголовка, к которому применяется маскирование |
Строковое значение |
— |
|
Обязательный (если |
Регулярное выражение с группами для определения фрагмента замены |
Текстовое значение |
— |
|
Опциональный (если |
Заменять все или первое найденное значение |
|
|
|
Опциональный (в рамках |
Символ, который используется для замены |
Строковое значение |
|
|
Опциональный |
Включение/выключение передачи тела запроса на upstream. При отключении обязательно занулить заголовок content-length |
|
|
|
Опциональный |
Возврат временного (302, 307) или постоянного (301, 308) перенаправления |
Группа параметров (from, to, type, condition) |
Значения группы задаются пользователем |
|
Обязательный (в рамках |
Регулярное выражение URI запроса |
Текстовое значение |
— |
|
Обязательный (в рамках |
Заменяющая строка |
Текстовое значение |
— |
|
Опциональный (в рамках |
Тип перенаправления. Допускается несколько типов |
|
|
|
Опциональный (в рамках |
Выражение (var, operator, val). Перенаправление при выполнении условия |
Последовательность параметров (var, operator, val) |
— |
|
Обязательный (в рамках |
Обозначение имени переменной |
Текстовое значение |
— |
|
Обязательный (в рамках |
Оператор выражения |
|
— |
|
Обязательный (в рамках |
Значение переменной |
Текстовое значение |
— |
Пример session_cache:
session_cache:
type: shared
name: my_name_size
size: 4k
Пример upload_size_limit:
upload_size_limit:
size: 40M
drop: on
enable: true
Пример download_size_limit:
download_size_limit:
size: 50k
drop: off
status: 413
Пример cookie_domain:
cookie_domain:
from: localhost
to: example.org
Пример cookie_flags:
optional:
set_variable:
- name: myvar
value: "httponly"
cookie_flags:
- cookie: cookie1
flag: $myvar
- cookie: '~' cookie2
flag: no$myvar
Пример cookie_path:
cookie_path:
- from: ~^/BLABLA/([^/]+)
to: /sowa/$1
- from: /one/
to: /
- from: /two/
to: /