uz
Новости
Новый дата-центр Serverspace в Узбекистане — запуск локации Ташкент (East Telecom YA DC)
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
ООО «ИТГЛОБАЛКОМ ЛАБС»

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