30.05.2023

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

Что такое HAProxy

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

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

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

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

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

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>

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

Настройка HAProxy

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

apt-get update; apt upgrade -y

apt-get install haproxy -y

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

service haproxy start; systemctl enable haproxy

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

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

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

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

echo $(hostname) > <индексный_файл>

rm <index file>

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

Заключение

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