Тип сервиса WebSocketProxy#
В контексте service объявляется соответствующий тип сервиса service_web_socket_proxy:
service:
service_web_socket_proxy:
WebSocketProxy - основные параметры#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Обязательный |
Идентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлах. Значение должно быть уникальным. Количество сервисов не ограничено |
Текстовое значение (строка, число или их комбинация, разделитель — «_») |
— |
|
Обязательный |
Относительный url, на котором будет работать сервис. Есть возможность использовать регулярное выражение. Значение должно быть уникальным |
Строковое значение |
— |
|
Обязательный |
Описание группы серверов и параметров соединения с backend. Последовательность параметров, описанных в разделе Параметр upstream |
В случае проксирования через main сервис: |
— |
|
Опциональный |
Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций. Значение должно быть уникальным |
Строковое значение |
— |
|
Опциональный |
Версия профиля данного сервиса |
Текстовое значение |
— |
|
Опциональный |
Строка с описанием сервиса. Значение не является уникальным |
Текстовое значение |
— |
|
Опциональный |
Параметр является обязательным только для сервиса типа service_main_proxy. Если не указан, используются unix-сокеты |
Последовательность параметров, описанных в разделе Параметр listen |
— |
|
Опциональный |
Виртуальное имя сервера |
Последовательность строковых значений |
|
|
Опциональный |
Таймауты, сессия, ограничения, утилиты и др. |
Параметры, описанные в разделе «WebSocketProxy - optional» |
— |
|
Опциональный |
Изменение содержимого заголовков запроса и ответа |
Параметры, описанные в разделе Параметр modifiers |
— |
|
Опциональный |
Фильтр web_socket — обмен сообщениями между браузером и веб-сервером в режиме реального времени. Параметры описаны в разделе Фильтр WebSocket |
Группа параметров и их значения |
— |
Пример минимальной настройки:
version: 2.0.1
profile: test_websocket
system:
wrk_count: 4
conn_count: 30000
optional:
default_type: application/octet-stream
log_level: error
service:
service_web_socket_proxy:
- id: 1
listen:
- port: 9090
- port: 9093
ssl:
certificate: certificate
certificate_key: privatekey
protocols:
- TLSv1
- TLSv1.1
- TLSv1.2
ciphers:
- value:
- "HIGH"
- prefix: "!"
value:
- "aNULL"
- prefix: "!"
value:
- "MD5"
hostname:
- 10.x.x.x
- SERVER-0007
url: /ws
upstream:
ssl: on
url: /ws_stub
servers:
- server: 10.x.x.x:8943
- server: SERVER-19:8943
Пример:
version: 2.0.1
profile: test-profile
system:
wrk_count: 4
conn_count: 30000
optional:
default_type: application/json
log_level: info
service:
service_web_socket_proxy:
- id: 1
listen:
- address: "127.0.0.1"
port: 9080
- address: "domain-name0"
port: 9443
ssl:
certificate: certificate
certificate_key: privatekey
protocols:
- TLSv1
- TLSv1.1
- TLSv1.2
ciphers:
- value:
- "HIGH"
- prefix: "!"
value:
- "aNULL"
- prefix: "!"
value:
- "MD5"
verify_client: optional_no_ca
verify_depth: 5
client_certificate: client-cert-name
hostname:
- 12.x.x.x
- NAME-OF-VS
url: /sowa
upstream_group_id: backend
upstream_groups:
- id: backend
ssl: on
servers:
- server: domain-name1:80
weight: 2
max_conns: 10000
max_fails: 10
fail_timeout: 1m
backup: False
- server: domain-name2:8080
weight: 5
max_conns: 20000
max_fails: 3
fail_timeout: 15s
backup: True
optional:
keepalive_timeout: 2h
keepalive_requests: 5000
proxy_connect_timeout: 3m
proxy_read_timeout: 150s
proxy_send_timeout: 1h
upstream_rcv_buffer_size: 32k
downstream_rcv_buffer_size: 32k
upstream_send_buffer_size: 1m
downstream_send_buffer_size: 1m
send_downstream_no_delay: True
send_upstream_no_delay: False
sec_close_mode: soft
sec_close_code: 1002
sec_close_reason: "Message with close reason"
filters:
filter_web_socket:
http:
- type: WsAsynHttpFilter
action: disconnect
stage: REQ
apply:
filter_mds:
rules:
- base
- owasp-crs
- comodo
content_type: application/x-www-form-urlencoded
connect_timeout: 10s
read_timeout: 5s
write_timeout: 5s
nohttp:
- type: WsFrameTypeFilter
action: disconnect
stage: RESP
frame_types:
- DATA
- CLOSE
rule: ALLOWED
WebSocketProxy - optional#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Опциональный |
Переопределение уровня логирования для сервиса |
|
Наследуется от значения в |
|
Опциональный |
Группировка access журналов по кодам состояния (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500) |
|
|
|
Опциональный |
Формат логирования |
Текстовое значение |
— |
|
Опциональный |
Таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Максимальное число запросов, которые можно сделать по одному keep-alive соединению |
Целочисленное значение |
|
|
Опциональный |
Таймаут при чтении ответа proxy-service. Используется, если |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Таймаут при передаче запроса проксированному серверу. Используется, если |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Таймаут для установления соединения с проксированным сервером. Используется, если |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Размер буфера приема с upstream |
Текстовое значение с суффиксом: число (байты), |
|
|
Опциональный |
Размер буфера приема от клиента |
Текстовое значение с суффиксом: число (байты), |
|
|
Опциональный |
Размер буфера ответа на upstream |
Текстовое значение с суффиксом: число (байты), |
|
|
Опциональный |
Размер буфера ответа клиенту |
Текстовое значение с суффиксом: число (байты), |
|
|
Опциональный |
Будет ли обработчик ожидать окончания приема серии пакетов данных от upstream сервиса, либо передавать данные клиенту по мере поступления |
|
|
|
Опциональный |
Будет ли обработчик ожидать окончания приема серии пакетов данных от клиента, либо передавать данные upstream-сервису по мере поступления |
|
|
|
Опциональный |
Способ закрытия соединения при блокировке сообщения фильтром: |
|
|
|
Опциональный |
Код закрытия в close фрейме. Используется, если |
Целочисленное значение |
|
|
Опциональный |
Причина закрытия в close фрейме. Используется, если |
Строковое значение |
|
|
Опциональный |
Отправка сообщения клиенту, когда его сообщение заблокировано фильтром |
Строковое значение |
— |
|
Опциональный |
Отправка сообщения клиенту, когда сообщение сервера заблокировано фильтром |
Строковое значение |
— |
|
Опциональный |
Лимит загружаемых данных для передачи. Если превышен, сессия прервана |
Текстовое значение |
|
|
Опциональный |
Запрет использования HTTP pipelined requests для входящих запросов. При |
|
|
|
Опциональный |
Ограничение приема входящих соединений только по протоколу http2 |
|
|
|
Опциональный |
Лимит скачанных данных для передачи. Если превышен, сессия прервана |
Текстовое значение |
|
|
Опциональный |
Необходимо ли сжимать сообщение перед проверкой лимита |
|
|
|
Опциональный |
Определение имен переменных и их значений |
Последовательность параметров (name, value) |
— |
|
Обязательный (в рамках |
Имя переменной |
Текстовое значение |
— |
|
Обязательный (в рамках |
Значение переменной |
Текстовое значение |
— |
|
Опциональный |
Секция параметров телеметрии |
Параметры, описанные в разделе Параметр opentelemetry_tracing |
— |
|
Опциональный |
Ограничение скорости обработки запросов |
Параметры, описанные в разделе Параметр limit_req |
— |
|
Опциональный |
Ограничение запросов |
Параметры, описанные в разделе Параметр limit_requests |
— |
|
Опциональный |
Противодействие роботам и сканированию портов |
Параметры, описанные в разделе Параметр robot_mitigation |
— |
|
Опциональный |
Мониторинг поведения пользователей при доступе к серверу |
Параметры, описанные в разделе Параметр ip_behavior |
— |
|
Опциональный |
Отслеживание заголовков Set-Cookies и значений cookie в ответе. Зависит от session_module |
Параметры, описанные в разделе Параметр cookie_poisoning |
— |
|
Опциональный |
Сжатие ответа методом gzip |
Параметры, описанные в разделе Параметр gzip |
— |
|
Опциональный |
Настройка файлового асинхронного ввода-вывода |
Параметры, описанные в разделе Параметр async_io |
— |
|
Опциональный |
Правила маскирования чувствительной информации в логах |
Параметры, описанные в разделе Параметр log_masking_rules |
— |
|
Опциональный |
Параметры отправки событий конфигуратора |
Параметры, описанные в разделе Параметр logging |
— |
|
Опциональный |
Динамическая генерация ответов на запросы о состоянии экземпляра или сервиса |
Параметры, описанные в разделе Параметр healthcheck_dynamic |
— |
|
Опциональный |
Настройки ssl соединения |
Параметры, описанные в разделе Параметр upstream_ssl |
— |
|
Опциональный |
Максимальное время обработки запросов в рамках keep-alive соединения |
Текстовое значение с суффиксом: |
|