news
Serverspace добавил возможность подключения S3 к сервису CDN
KA
3 мая 2023
Обновлено 24 июля 2023

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

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 может выглядеть, как показано на скриншоте:

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

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

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

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

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

nano /etc/haproxy/haproxy.cfg

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

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

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

  • log global: Включает ведение журнала глобально для всего трафика, обрабатываемого HAProxy;
  • mode http: Указывает, что HAProxy работает в режиме HTTP, что означает, что он сможет проверять HTTP-трафик и манипулировать им;
  • option httplog: Включает подробное протоколирование HTTP, которое включает заголовки запросов и ответов, а также другую информацию, такую как IP-адрес клиента и версия SSL;
  • option dontlognull: Запрещает HAProxy регистрировать соединения, которые не получают никаких данных.

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

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

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

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

  • Round—Robin: метод перераспределяет входящий трафик равномерно на все сервера, используя математический цикл, это доказанный на практике и эффективный способ сохранить доступность серверов;
  • Least Connections: метод направляет входящий трафик на сервер с наименьшей нагрузкой, что может быть полезно при использовании соединения типа keep—alive;
  • Source IP Hash: метод, подразумевающий вычисление хэш-значения всех клиентов, сравнение со следующими подключениями и маршрутизацию по правилу прошлых соединений.

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

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

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

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

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

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

sudo service haproxy restart

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

Вывод

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

Оценка:
4 из 5
Аverage rating : 4.7
Оценок: 9
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300

Вам также может быть интересно...