23.06.2025

Установка балансировщика HAProxy на CentOS

У малого и среднего бизнеса много проблем с сетевой архитектурой: старое серверное оборудование, нехватка ИТ—сотрудников, весь механизм открыт для злоумышленников! Существуют локальные, но жизненно важные решения, которые могут помочь в этой критической ситуации. Прокси—сервер — это такая деталь гигантского механизма защиты. Он обладает набором явных возможностей: перераспределяет нагрузку на сервер, предоставляет возможность установки IPS и IDS и обеспечивает примитивную анонимность, заменяя IP-адрес в заголовке данных. Одним из таких решений является HAProxy.

Зачем нужен HAProxy?

HAProxy представляет этот тип утилиты для разных ОС. Бесплатное ПО с открытым исходным кодом — это заманчивое рыночное предложение, которое довольно выгодно и относительно безопасно. Нужно переписать программу под себя? Вряд ли это проблема. HAProxy обладает множеством различных возможностей и опций, которые подключают различные алгоритмы балансировки нагрузки, мониторинга, отслеживания входящего трафика и основной функции проксирования TCP, UDP соединений.

Настройка HAProxy достаточно простоя и не должна вызвать проблем.

Подготовка к установке и действия

Для корректной работы необходимо проверить системные требования:

  1. Операционная система: HAProxy может работать в нескольких операционных системах, включая Linux, FreeBSD и Windows;
  2. Память: Потребность в памяти зависит от количества одновременных подключений и размера файла конфигурации. Как правило, вы должны выделять не менее 2 МБ на 1000 подключений;
  3. ЦП: Как правило, рекомендуется использовать многоядерный процессор;
  4. Место на диске: Требования к дисковому пространству минимальны. Однако вам может потребоваться выделить место для журналов или других пользовательских конфигураций.

Если параметры вашей системы в порядке, мы можем начать установку с помощью приведенных ниже команд:

sudo yum update -y

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

sudo yum install epel-release

Эта команда настраивает расширенные пакеты для вашего компьютера. Их нет в репозитории.

sudo yum install haproxy

Вывод в CLI может выглядеть, как показано на скриншоте:

Скриншот №1 — Установка HAProxy

Вот и все! Осталось совсем немного: настройка конфига.

Создаем конфигурацию

Процесс написания конфигурации довольно творческий. Вам нужно рассчитать и продумать цель использования этой утилиты. Я рассматриваю две ситуации эксплуатации HAProxy, которых может быть великое множество.

Первое и самое популярное использование HAProxy для проксирования ваших данных через сервер. Найдите файл конфигурации:

nano /etc/haproxy/haproxy.cfg

Затем откройте с помощью любого текстового редактора: nano, vim и т.д. Вы можете увидеть три основных блока конфигурации: глобальный, по умолчанию и пару разделов, в которых необходимо выстроить логику настройки. В моем примере конфигурация должна проксировать http-соединение через блок «listen». Вначале вам нужно настроить блок «defaults». Пример, показанный на этом рисунке:

Скриншот №2 — Конфигурация прокси

Давайте опишем эти параметры:

Если вы используете UDP-соединение, то замените «TCP». Рассмотрим следующий блок «listen».

Скриншот №3 — Конфиг правила

В первой строке мы дали имя нашему правилу «http1», а затем параметром «bind» определили исходный IP и порт. Я выбираю знак «*» из-за отсутствия конкретной машины источника траффика. Укажите режим «http» и запишите целевой сервер. Первое слово означает параметр, второе — это его название, затем указывается IP:порт и необязательный параметр «check», который контролирует доступность соединения.

Во—вторых, используйте HAProxy для балансировки нагрузки на ваши данные через прокси-сервер. Существует множество методов и алгоритмов перераспределения нагрузки на сервер:

Пример конфигурации показан на рисунке ниже:

Скриншот №4 — Конфиг балансировки

Параметры остаются прежними, но разделы были немного изменены. Добавлю блоки «frontend» и «backend». Первое подразумевает настройки исходного трафика, а второе – настройки целевого подключения к серверу. В поле «frontend» укажите IP:порт и целевой сервер. В разделе «backend» указывается только адрес сервера.

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

haproxy -c -f /etc/haproxy/haproxy.cfg

Результатом выполнения этой команды будет сообщение о состоянии вашего конфигурационного файла, и если в ваших параметрах была ошибка, то появится сообщение «ALERT» и «WARNING».

sudo service haproxy restart

Перезагрузите сервис и проверьте соединение!

Вывод

HAProxy — это мощный инструмент, программное обеспечение, которое можно использовать для различных полевых задач: балансировки нагрузки на сервер, изменения IP-адреса для простой анонимности и проксирования трафика различными способами.