Пaраметр upstream#
Параметр upstream доступен для использования в сервисе через объявление одним из следующих параметров (или их взаимосвязи):
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Обязательный |
Использовать ли upstream_groups основного прокси (т.е. сервиса типа service_main_proxy). Параметр НЕ МОЖЕТ быть объявлен в сервисе типа |
|
— |
|
Обязательный |
Группы upstream, на которые проксируются сообщения. Рекомендован к применению в случае, если проксирование осуществляется с использованием сервиса типа service_main_proxy, или при условии использования сервиса отличного от типа service_cache или service_main_proxy и значения false параметра use_main_upstream_groups |
Последовательность параметров и их значения |
— |
|
Обязательный |
Идентификатор upstream группы. Может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание «_». Значение должно быть уникальным |
Текстовое значение |
— |
|
Обязательный |
Список node для upstream. Если в секции servers присутствует только один upstream, то параметры |
Последовательность параметров и их значения |
— |
|
Опциональный. Обязательно, если |
Идентификатор сервиса |
Текстовое значение |
— |
|
Опциональный. Обязательно, если |
Тип сервиса |
Текстовое значение: |
— |
|
Опциональный. Обязательно, если |
Имя сервера или ip-адрес с портом. Порт по умолчанию — 80 |
Строковое значение |
— |
|
Опциональный |
«Веса» сервера |
Целочисленное значение |
|
|
Опциональный |
Максимальное количество одновременных подключений к upstream. 0 — ограничений нет |
Целочисленное значение |
|
|
Опциональный |
Число неудачных попыток работы с сервером, которые должны произойти в течение времени, заданного параметром fail_timeout, чтобы сервер считался недоступным. Нулевое значение отключает учет попыток |
Целочисленное значение |
|
|
Опциональный |
1) Время, в течение которого должно произойти заданное число неудачных попыток для того, чтобы сервер считался недоступным. 2) Время, в течение которого сервер будет считаться недоступным |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Имя сервера, который будет использоваться в качестве резервной копии. Если все базовые серверы станут недоступны, запросы будут перенаправлены сюда |
|
— |
|
Опциональный |
Время, в течение которого сервер восстанавливает свой «вес» с нуля до номинального значения, бывшем до этого в неработоспособном состоянии. Применимо, если указано более одного peer |
Текстовое значение с суффиксом: |
— |
|
Опциональный |
Хеш, который будет связан с узлом при выборе липкой балансировки. Используется, если |
Текстовое значение |
— |
|
Опциональный |
Необходимо ли генерировать хеш из «ip: port» по внутреннему алгоритму DP. Используется, если |
Текстовое значение: |
— |
|
Опциональный |
Тип соединения с проксируемым сервером — http или https. Маппится на опцию proxy_pass. Без дальнейших настроек SSL/TLS позволит установить небезопасное соединение по HTTPS (без верификации сертификатов) |
|
|
|
Опциональный |
Позволяет произвести замену URL-адреса, который идет на backend. URI переопределяется целиком (с учетом аргументов) |
— |
— |
|
Обязательный (в рамках |
Регулярное выражение, соответствующее URI |
Строковое значение |
— |
|
Обязательный (в рамках |
Строка для замены URI, соответствующая регулярному выражению в параметре from. Допустимо использовать подстановки (\(1, \)2 и т.д.) |
Строковое значение |
— |
|
Опциональный |
Шаблон условия связывания контекста. Обязательно, если |
Строковое значение |
— |
|
Опциональный |
Значение переменной, которая будет использоваться в качестве условия связывания с upstream группой. Если используется данный параметр и существует несколько upstream групп, то одна из них должна быть объявлена по умолчанию. Используется, если |
Строковое значение |
— |
|
Опциональный |
Данная группа upstream используется по умолчанию. Используется вместе с bind_condition. Значение должно быть уникальным. Используется, если |
|
— |
|
Опциональный |
Группа параметров для проверки работоспособности сервиса. Параметры описаны в разделе Параметр health_check |
Группа параметров и их значения |
— |
|
Опциональный |
— |
Группа параметров и их значения |
— |
|
Опциональный |
Тип балансировки |
|
Round Robin |
|
Опциональный |
Механизм хеширования методом ketama. Используется, если |
|
— |
|
Опциональный |
Отображение клиент-сервер основано на значении хэшированного ключа. Используется, если |
Строковое значение |
— |
|
Опциональный |
Имя файла cookie, используемого для отслеживания upstream srv. Используется, если |
Строковое значение |
|
|
Опциональный |
Имя домена, в котором будет сохранен файл cookie. Используется, если |
Строковое значение |
Обрабатывается браузером |
|
Опциональный |
Путь, по которому будет сохранен файл cookie. Используется, если |
Строковое значение |
Обрабатывается браузером |
|
Опциональный |
Срок действия файла cookie. Используется, если |
Текстовое значение с суффиксом: |
Cookie действует на протяжении сессии |
|
Опциональный |
Механизм хеширования для кодирования upstream. Используется, если |
|
|
|
Опциональный |
Механизм хеширования для кодирования upstream с дополнительным параметром hmac_key. Используется, если |
|
— |
|
Опциональный |
Ключ, используемый при хешировании механизмом hmac. Используется, если |
Строковое значение |
— |
|
Опциональный |
Вкл./Откл. поведения nginx, возвращающего 502, если запрос приходит с файлом cookie, а соответствующий backend недоступен. Используется, если |
|
— |
|
Опциональный |
Вкл./откл. механизма безопасной передачи файлов cookie — только через https. Используется, если |
|
|
|
Опциональный |
Необходимо ли использовать файлы cookie, которые не могут быть пропущены через js. Используется, если |
|
|
|
Опциональный |
Тип персистентной балансировки. Используется, если |
|
— |
|
Опциональный |
Cookie, устанавливаемая upstream в ответе в заголовке Set-Cookie. Если cookie пришли, выставляется имя сессии. Используется, если |
Строковое значение |
— |
|
Опциональный |
Если в upstream только один peer, а параметр не указан, то cookie создаваться не будут. Используется, если |
|
— |
|
Опциональный |
Время истечения срока действия cookie. Используется, если |
Целочисленное значение |
— |
|
Опциональный |
При обращении к данному uri сессионная cookie будет удалена из запроса и peer будет перевыбран. Используется, если |
Текстовое значение |
— |
|
Опциональный |
Используется, если |
Текстовое значение |
— |
|
Опциональный |
Сессионная cookie будет сброшена, если в запросе отсутствует cookie указанная в monitor_cookie. Используется, если |
|
|
|
Опциональный |
Количество секунд до истечения срока действия файла cookie. Нулевое или отрицательное число немедленно сбросит файл cookie. Используется, если |
Целочисленное значение |
— |
|
Опциональный |
Постфикс для липкой cookie. Постфикс будет добавлен через разделитель |
Текстовое значение |
— |
|
Обязательный (если |
Разделитель окончания файла cookie. Допускается только один символ |
— |
— |
|
Опциональный |
Зона разделяемой памяти, в которой хранятся конфигурация группы и ее рабочее состояние, разделяемые между рабочими процессами. По умолчанию все группы upstreams используют одну общую дефолтную зону с размером 1m |
Группа параметров и их значения |
— |
|
Опциональный |
Имя upstream_zone |
Строковое значение |
|
|
Опциональный |
Размер upstream_zone. Данного размера хватает на 512 серверов с включенным healthcheck & sticky session |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Максимальное число неактивных постоянных соединений с серверами группы, которые будут сохраняться в кэше каждого рабочего процесса |
Целочисленное значение |
— |
|
Опциональный |
Максимальное число неактивных постоянных соединений с серверами группы, которые будут сохраняться в кэше каждого рабочего процесса. При превышении этого числа наиболее давно не используемые соединения закрываются |
Целочисленное значение |
— |
|
Опциональный |
Максимальное число запросов, которые можно сделать по одному постоянному соединению. После достижения лимита соединение закрывается |
Целочисленное значение |
|
|
Опциональный |
Таймаут, в течение которого неактивное постоянное соединение с сервером группы не будет закрыто |
Текстовое значение с суффиксом: |
|
|
Опциональный |
Идентификатор upstream группы. Не может быть объявлен в сервисах типа |
Текстовое значение |
— |
|
Опциональный |
Переменная, которая используется для связывания upstream группы с bind_condition |
Строковое значение |
— |
Пример использования параметра upstream:
version: 2.0.3
profile: <profile_name>
system:
wrk_count: 4
conn_count: 2048
optional:
wrk_user: sowactl
underscores_in_headers: true
log_level: debug
service:
service_main_proxy:
- id: 1
listen:
- port: 8091
hostname:
- localhost
url: /
upstream_groups:
- id: extgw_v1
ssl: true
health_check:
load_balancing:
servers:
service_http_proxy:
- id: payments_1
url: ^\/payments\/v4\/banking\/products\/p2bpayments\/mobile-main\/main$
use_main_upstream_groups: true
upstream_group_id: extgw_v1
- id: hp_1
use_main_upstream_groups: false
upstream_group_id: <value_name_group>
upstream_groups:
- id: <value_name_group>
servers:
- server: <value_ip_address>