Методы балансировки

В конфигурации upstream задаётся алгоритм распределения входящих запросов между узлами backend-сервиса. Выбор метода балансировки определяет логику выбора целевого узла при обработке каждого запроса.

balancer methods 1

Поддерживаются следующие методы балансировки:

Round Robin

Запросы распределяются между узлами последовательно, по кругу, с учётом весов. При равных весах нагрузка распределяется равномерно.

CHash

Выбор узла выполняется на основе хэширования значения заданного параметра. Обеспечивает привязку запросов с одинаковыми параметрами к одному и тому же backend-узлу.

Для расчёта хэша могут использоваться следующие источники данных:

  • vars — значения встроенных переменных NGINX

  • header — значения HTTP-заголовков

  • cookie — значения cookie

  • consumer — идентификатор потребителя (consumer)

  • vars_combinations — комбинация нескольких переменных

balancer methods 2

Least Conn

Запрос направляется на узел с наименьшим количеством активных соединений. Используется для более равномерного распределения нагрузки при длительных соединениях.

EWMA

Выбор узла выполняется на основе оценки времени ответа backend-серверов с использованием экспоненциально взвешенного скользящего среднего. Предпочтение отдаётся узлам с меньшей задержкой.