Перейти к содержанию

Балансировщик нагрузки HAProxy

Общие сведения

📌 HAProxy (High Availability Proxy) — это один из самых популярных, надёжных и мощных балансировщиков нагрузки с открытым исходным кодом. Он используется для распределения входящих сетевых запросов между несколькими серверами, обеспечивая высокую доступность, отказоустойчивость и масштабируемость приложений.

Он активно используется как в небольших системах, так и в крупных распределённых инфраструктурах с высокой нагрузкой (например, Amazon, GitHub, Reddit используют HAProxy в своей архитектуре).

⚙️ Основные возможности HAProxy:

  • Балансировка нагрузки

    • Поддержка HTTP, HTTPS и TCP трафика.
    • Различные алгоритмы балансировки:

      • roundrobin — круговой обход;
      • leastconn — наименьшее количество соединений;
      • source — привязка клиента к конкретному серверу;
      • first — первый доступный сервер.
  • Безопасность

    • SSL/TLS termination — приём HTTPS с последующей передачей по HTTP.
    • Генерация self-signed сертификатов.
    • Поддержка внешних SSL-сертификатов и ключей.
  • Мониторинг и статистика

    • Встроенный web-интерфейс статистики для просмотра метрик и состояния backend-ов.
    • Поддержка HTTP checks и health-checks для оценки доступности серверов.
  • Расширенная настройка (Custom Config)

    • Возможность указать собственный конфиг с точными параметрами маршрутизации, логики балансировки, таймаутов, логирования и др.
    • Гибкое управление потоками данных, включая ACL (Access Control Lists), перезапись URL, фильтрацию запросов и многое другое.
  • Режимы развёртывания

    • Single-node — одиночный балансировщик, подходящий для тестирования или малонагруженных систем.
    • Two-node (кластер) — отказоустойчивый вариант с VIP-адресом, при котором один из узлов берёт на себя роль активного, а второй — резервного.

Когда использовать HAProxy:

  • Вы хотите обеспечить отказоустойчивость сервисов через кластер из нескольких балансировщиков.
  • Вам нужен простой и эффективный способ маршрутизации трафика в продакшн.
  • Требуется точный контроль над поведением проксирования.
  • Вы хотите централизованно управлять HTTPS/SSL, сохранив HTTP внутри сети.
  • Нужно собирать подробную статистику и метрики по соединениям и состоянию backend-серверов.

Заказ сервиса Балансировщик нагрузки HAProxy

  1. Выбор сервиса На пользовательском портале Nimbus откройте в боковом меню Каталог Сервисов и выберите «Балансировщик нагрузки HAProxy».

  2. Заполнение вкладки «Build a VM»
    Блок полей Place VM to:

    • Environment — выберите окружение (например, VMWare).
    • Location — выберите географическую локацию.
    • Ресурсный пул — выберите нужный ресурсный пул для размещения ВМ.

    Блок полей VM Configuration:

    • Template — шаблон ОС для виртуальной машины.
    • CPU — конфигурация CPU (формат: cores x sockets).
    • Memory (GB) — объем оперативной памяти.
    • Объем базовых дисков (ГБ) — подтягивается автоматически из шаблона.
    • Тип основных дисков — опционально.
    • Network — выберите сетевое подключение.

    Блок полей Наименование сервиса:

    • Имя сервиса — обязательное поле, латиница и цифры, без пробелов.
    • Описание сервиса — опционально.

Нажмите «Продолжить» или перейдите на следующую вкладку.
3. Заполнение вкладки «Дополнительные опции»

  • Префикс имени ВМ — до 15 символов (латиница, цифры, дефис). Если не заполнено, имя будет присвоено автоматически.
  • Описание ВМ — необязательно.
  • Дополнительный диск (ГБ) — при необходимости.
  • Тип дополнительного диска — при необходимости.


4. Заполнение вкладки «Deployment Type»

  • Deployment — выберите режим развёртывания:

    • Single node — одноузловой режим.
    • Two node — отказоустойчивая конфигурация.
  • Cluster VIP IP — необходимо заполнить только в режиме Two node. Это IP-адрес, который будет использоваться как виртуальный IP для отказоустойчивости.


5. Заполнение вкладки «HAProxy Settings»

  • Configure — способ настройки:
    • Form — ввод параметров через форму.
    • Custom Config — ручной ввод полной конфигурации.

Если выбран Custom Config, все поля на вкладке, кроме Custom Config, становятся недоступны. Введите вручную конфигурацию HAProxy.

Если выбран Form, поле Custom Config становится недоступным.

Если выбран Form, то нужно заполнить:

  • Service name — название внутреннего сервиса.
  • Port — порт, на котором будет слушать HAProxy.
  • Port typeHTTP или TCP.
  • Balance type — алгоритм балансировки (First, Leastconn, Roundrobin, Source).
  • Balanced Servers IP — список IP-адресов backend-серверов через запятую.
  • HTTP Check — путь для проверки доступности backend'ов (например, /health).
  • HA Proxy Frontend StatisticEnable для активации статистики или Disable.
  • Custom Config — будет неактивно при выборе Form.


6. Заполнение вкладки «SSL Settings»

  • HTTPS enable — включить поддержку HTTPS:

    • Если disabled, все поля вкладки становятся недоступными.
    • Если enabled, необходимо задать параметры ниже.
  • SSL self-signed — использование самоподписанного сертификата:

    • Если enabled, необходимо заполнить:

      • Country Name
      • State or province name
      • Locality Name
      • Organization Name
      • Organizational unit Name
      • Email address
      • Common Name (например, FQDN сервиса)
      • Поля SSL Key и SSL Cert будут недоступны.
    • Если disabled, нужно заполнить:

      • SSL Key — приватный ключ.
      • SSL Cert — публичный сертификат.
    • Остальные поля станут недоступными.


7. Завершение заказа
Нажмите «Добавить в корзину». Сервис появится в вашей корзине в правом верхнем углу. Продолжайте оформление по стандартной процедуре.