Балансировщик нагрузки 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¶
-
Выбор сервиса На пользовательском портале Nimbus откройте в боковом меню Каталог Сервисов и выберите «Балансировщик нагрузки HAProxy».
-
Заполнение вкладки «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 type —
HTTP
илиTCP
. - Balance type — алгоритм балансировки (
First
,Leastconn
,Roundrobin
,Source
). - Balanced Servers IP — список IP-адресов backend-серверов через запятую.
- HTTP Check — путь для проверки доступности backend'ов (например,
/health
). - HA Proxy Frontend Statistic —
Enable
для активации статистики или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. Завершение заказа
Нажмите «Добавить в корзину». Сервис появится в вашей корзине в правом верхнем углу. Продолжайте оформление по стандартной процедуре.