← Cloudflare Load Balancing / load-balancing
Балансировщики нагрузки
Балансировщик нагрузки распределяет трафик между пулами согласно работоспособность пула и политики управления трафиком. Каждый балансировщик нагрузки идентифицируется по своему DNS-имени хоста (lb.example.com, dev.example.com, и т. д.) или IP-адрес.
Распространённые конфигурации
Рекомендации приведены в Распространённые конфигурации балансировщика нагрузки.
Public vs. Private Load Balancers
Public Load Balancers предназначены для обработки трафика из публичного интернета. При развёртывании они автоматически получают имя хоста и сразу становятся доступны. Такие балансировщики нагрузки могут направлять трафик на различные типы назначений, включая публичные имена хостов, публичные и приватные IP-адреса.
Private Load Balancers, напротив, предназначены для внутреннего использования в приватных сетях. Они не получают имя хоста автоматически, но его можно назначить через Gateway Firewall Policies или с помощью внутренней системы DNS. Private Load Balancers принимают трафик только через точку входа в приватную сеть, например Cloudflare One Client или Cloudflare WAN. Они могут перенаправлять трафик исключительно на приватные IP-адреса.
Балансировка нагрузки и существующие DNS-записи
Подробнее о записях DNS см. в DNS-записи для балансировки нагрузки.
HTTP keep-alive (постоянное HTTP-соединение)
Cloudflare поддерживает keep-alive соединения, чтобы повысить производительность и снизить затраты на многократное установление TCP-соединений при обработке запросов, пока Cloudflare передаёт трафик клиентов от своей периферийной сети до исходного сервера сайта.
Убедитесь, что на вашем источнике включены соединения HTTP Keep-Alive. Cloudflare повторно использует открытые TCP-соединения в течение 15 минут (900 секунд) после последнего HTTP-запроса. Веб-серверы источника закрывают TCP-соединения, если их открыто слишком много. HTTP Keep-Alive помогает избежать преждевременного сброса соединений для запросов, проксируемых через Cloudflare.
Cookie-файлы сессии
При использовании HTTP-cookie для отслеживания и привязки пользовательских сессий к конкретному серверу, настройте Session Affinity для разбора HTTP-запросов по заголовку cookie. Это позволяет направлять каждый запрос на нужный сервер приложения, даже если HTTP-запросы используют одно и то же TCP-соединение из-за keep-alive.
Например, балансировщики F5 BIG-IP устанавливают сессионный cookie-файл в начале TCP-соединения (если он отсутствует), а затем игнорирует все cookie из последующих HTTP-запросов в рамках того же TCP-соединения. Это часто нарушает session affinity, поскольку Cloudflare отправляет несколько HTTP-сессий по одному и тому же TCP-соединению. Чтобы избежать этой проблемы, настройте балансировщик нагрузки на разбор HTTP-запросов по заголовкам cookie.
Создание балансировщиков нагрузки
Пошаговые инструкции приведены в Создайте балансировщик нагрузки.
Свойства
Актуальный список свойств балансировщика нагрузки приведён в Свойства балансировщика нагрузки в документации по API Cloudflare.
Команды API
Cloudflare API поддерживает следующие команды для балансировщиков нагрузки.
| Команда | Метод | Конечная точка |
|---|---|---|
| Create Load Balancer | POST |
/zones/:zone_id/load_balancers |
| Delete Load Balancer | DELETE |
/zones/:zone_id/load_balancers/:id |
| List Load Balancers | GET |
/zones/:zone_id/load_balancers |
| Load Balancer Details | GET |
/zones/:zone_id/load_balancers/:id |
| Перезаписать отдельные свойства | PATCH |
/zones/:zone_id/load_balancers/:id |
| Перезаписать весь балансировщик нагрузки | PUT |
/zones/:zone_id/load_balancers/:id |