Облачная платформаEvolution

Правила балансировки


Правило балансировки определяет, как балансировщик будет обрабатывать входящий трафик и распределять запросы по серверам целевой группы.

Когда соединение устанавливается, балансировщик анализирует порт назначения в запросах и определяет правило, которое надо применить. Затем запросы распределяются по выбранному алгоритму между серверами целевой группы.

Особенности и ограничения

  • На одном балансировщике можно создать несколько правил.

  • Каждое правило связано с только одной целевой группой.

  • Для каждого правила настраивается один алгоритм балансировки: Round Robin, Maglev или Least Request.

  • Для каждого правила настраивается индивидуальная проверка доступности.

  • Для каждого правила настраивается индивидуальная маршрутизация: указывается один или несколько уникальных портов балансировщика, например 80, 443, 8080.

  • Один и тот же Порт балансировщика нельзя использовать в разных правилах внутри одного балансировщика.

  • Для каждого порта в правиле можно задать внутренний порт сервера целевой группы, например 80 → 8080, 443 → 8443.

    Например, в правиле указаны порты 80 и 443. Трафик, поступающий на порт 80, направляется на порт 8080 целевой группы. Трафик, поступающий на порт 443, — на порт 8443 целевой группы.

Алгоритмы балансировки

В правилах балансировки могут использоваться следующие алгоритмы балансировки:

  • Round Robin — балансировщик распределяет запросы между серверами серверу по кругу. После прохождения круга начинается новый цикл.

    Алгоритм Round Robin подходит, когда у серверов одинаковая производительность и нет необходимости учитывать фактическую нагрузку на них.

  • Least Request — балансировщик отправляет запрос на наименее загруженный сервер.

    Алгоритм Least Request подходит, когда у серверов разная производительность или важно избежать перегрузки серверов.

  • Maglev — балансировщик хеширует IP-адрес клиента и отправляет все запросы этого клиента на один сервер.

    Алгоритм Maglev подходит, когда количество серверов непостоянно и важно сохранить сессии клиентов с сервером.

Передача IP-адреса источника (Proxy Protocol)

Proxy Protocol — механизм, который добавляет заголовок с реальным IP-адресом клиента в TCP-соединение. Это позволяет серверу видеть истинный источник запроса, а не IP-адрес балансировщика.

Proxy Protocol может быть двух версий:

  • Version 1 — использует легкочитаемый текстовый формат заголовка;

  • Version 2 — использует двоичный формат заголовка, что обеспечивает более высокую скорость обработки соединений.

Примечание

Подробнее о версиях Proxy Protocol в официальной документации HAProxy.

Сервис Load Balancer поддерживает передачу IP-адреса источника только в балансировщиках версии 2. При этом балансировщик может одновременно обрабатывать трафик с Proxy Protocol и без него.

Если версия Proxy Protocol во входящем трафике отличается, балансировщик сконвертирует заголовки в TCP-пакетах в соответствии с выбранной версией.

К трафику, поступающему без заголовков Proxy Protocol, балансировщик добавит заголовки выбранной версии.