uz
VB
июня 23, 2025
Обновлено июня 23, 2025

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

Ubuntu

Используете другую ОС?

Выберите нужную версию или дистрибутив.

Что такое HAProxy

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

Требования к установке

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

  • Нужно как минимум три сервера — два из них будут работать в качестве серверов, обслуживающих контент вашего проекта, третий – в качестве балансировщика HAProxy;
  • Доменное имя с А-записями, “направленными” на IP балансировщика;
  • Контент вашего веб-сайта должен быть идентичен на обоих веб-серверах.

Настройка сети

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

  • Создайте три сервера через личный кабинет. Два из них будут работать как “бэкенд”, третий сервер будет балансировщиком HAProxy. Получившаяся “инфраструктурная” схема отображена ниже:

Создание трех серверов

  • Добавьте в файлы /etc/hosts на каждом из трех серверов строки, позволяющие “связать” IP-адреса с именами серверов. Затем проверьте доступность серверов, открыв SSH-консоль на haproxy-сервере и отправив несколько ICMP-пакетов на веб-серверы;

cat <<EOF >> /etc/hosts
<backend_server_one_IP> <backend_server_one_hostname>
<backend_server_two_IP> <backend_server_two_hostname>
<haproxy_server_IP> <haproxy_server_hostname>
EOF

ping <LAN_servers_IPs>

Связка IP-адресов с именами серверов

  • Создайте правило брандмауэра, блокирующее весь входящий трафик на веб-серверы, за исключением трафика с haproxy. Опционально, чтобы сделать управление серверами более комфортным, можно добавить в белый список свой собственный IP. Самый простой способ сделать это – зайти в детальные настройки сервера в личном кабинете Serverspace, добавьте правила и нажать кнопку SAVE. Помните, что разрешающие правила следует располагать выше запрещающих, иначе доступ к серверу будет невозможен.

Установка правила для брандмауэра

Развертывание веб-сайта

  • Если ранее вы внесли свой собственный IP-адрес в белый список, можете воспользоваться самым простым способом развертывания веб-сервера и дальнейшего управления сайтами — установить любую веб-панель, например, HestiaCP. Установите панель на первый “контентный” сервер, как описано в инструкции по установке Hestia на Ubuntu, затем авторизуйтесь в панели и, кликнув на Users > Add user, создайте непривилегированного пользователя;

Установка веб-панели HestiaCP и создание пользователя

  • Авторизуйтесь как этот аккаунт с “пониженными” правами;

рис5

  • Создайте веб-сайт через кнопку на панели;

Создание веб-сайта

Данные веб-сайта

  • Повторите развертывание веб-сайта на втором  “контентном” сервере;

Настройка HAProxy

Теперь пришло время установки балансировщика. Процедура установки описана ниже:

  • Авторизуйтесь в SSH-консоли сервера HAProxy, затем обновите существующие пакеты;
apt-get update; apt upgrade -y

Авторизация в HAProxy через SSH

  • Запустите установку балансировщика;
apt-get install haproxy -y

Запуск установки балансировщика

  • Отредактируйте конфигурационный файл HAProxy, просто добавьте в него следующие строки;

frontend haproxy_web

  bind <IP_сервера_haproxy>:80

  default_backend web_back

mode http

backend web_back

  balance roundrobin

server <hostname_первого_контентного_сервера> <IP_первого_контентного_сервера>:80

server <hostname_второго_контентного_сервера> <IP_второго_контентного_сервера>:80

Редакция конфигурации HAProxy

  • Запустите службу HAProxy и активируйте ее запуск при загрузке;
service haproxy start; systemctl enable haproxy

Запуск службы HAProxy

Проверка работы “балансера”

На этом этапе вы можете открыть свой сайт в браузере. Он откроется успешно, но вы все еще не можете быть уверены в штатной работе балансировщика. Для тестирования вы можете сделать следующее:

  • Войдите на первый веб-сервер через SSH, перейдите в каталог веб-сайта и переименуйте индексный файл;

cd <корневой_каталог_сайта>

mv <индексный_файл> <индексный_файл.bkp>

Вход на сервер через SSH

  • Создайте новый индексный файл, содержащий IP-адрес сервера;
echo $(hostname) > <индексный_файл>

Создание индексного файла

  • Повторите ту же процедуру на втором веб-сервере;
  • Откройте свой сайт в браузере, затем несколько раз обновите страницу. Вы увидите несколько отличную информацию. Все нормально, это означает, что балансировщик работает;

Создание индексного файла на втором веб-сервере Проверка работы балансировщика в браузере

  • Верните “исходные” индексные файлы обратно на обоих “контентных” серверах:

rm <index file>

mv <индексный_файл.bkp> <индексный_файл>

Возвращение индексных файлов на основном сервере

Возвращение индексных файлов на основном сервере

Заключение

После прочтения этой статьи вы узнали, что такое HAProxy, и теперь можете установить этот балансировщик на свой сервер под управлением Ubuntu 20.04.

Оценка:
4 из 5
Аverage rating : 4.5
Оценок: 8
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

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