August 29, 2026 · by Alex M.
Если ваш веб-проект активно растёт, один сервер рано или поздно станет узким местом. HAProxy (High Availability Proxy) — один из самых производительных и надёжных балансировщиков нагрузки с открытым исходным кодом. Его используют GitHub, Twitter, Stack Overflow и тысячи других компаний по всему миру.
В этом руководстве мы пошагово установим и настроим HAProxy на VPS NVMe под управлением Ubuntu 22.04 LTS — от установки до полноценного рабочего окружения с SSL и мониторингом.
HAProxy — это балансировщик нагрузки и прокси-сервер уровня 4 (TCP) и уровня 7 (HTTP). Он принимает входящий трафик и распределяет его между несколькими backend-серверами.
Ключевые преимущества:
HAProxy отлично подходит как для VPS SSD, так и для крупных выделенных серверов.
Мы настроим следующую схему:
Пользователи → HAProxy (192.168.1.10) → app1 (192.168.1.11:80)
→ app2 (192.168.1.12:80)
Схему легко расширить, добавив дополнительные узлы.
Подключитесь к серверу по SSH и выполните:
sudo apt update && sudo apt upgrade -y
sudo apt install haproxy -y
Проверьте установленную версию:
haproxy -v
Вы должны увидеть строку вида HAProxy version 2.4.x. Проверьте статус службы:
sudo systemctl status haproxy
На каждом backend-сервере установите Nginx для имитации веб-приложения:
sudo apt install nginx -y
Чтобы различать ответы, изменим главную страницу:
На app1:
echo "<h1>Backend: app1</h1>" | sudo tee /var/www/html/index.html
На app2:
echo "<h1>Backend: app2</h1>" | sudo tee /var/www/html/index.html
Запустите Nginx на обоих серверах:
sudo systemctl enable nginx && sudo systemctl start nginx
Основной файл конфигурации находится по пути /etc/haproxy/haproxy.cfg. Создайте резервную копию перед редактированием:
sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
Откройте файл для редактирования:
sudo nano /etc/haproxy/haproxy.cfg
Замените содержимое следующей конфигурацией:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
maxconn 50000
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5s
timeout client 30s
timeout server 30s
errorfile 400 /etc/haproxy/errors/400.http
errorfile 503 /etc/haproxy/errors/503.http
# Frontend — принимает трафик
frontend http_front
bind *:80
default_backend http_back
# Backend — серверы приложения
backend http_back
balance roundrobin
option httpchk GET /
server app1 192.168.1.11:80 check
server app2 192.168.1.12:80 check
# Дашборд статистики
listen stats
bind *:8080
stats enable
stats uri /haproxy?stats
stats refresh 10s
stats auth admin:СильныйПароль123
Важно: замените IP-адреса на реальные адреса ваших backend-серверов, а пароль — на надёжный.
Перед применением проверьте синтаксис:
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Если видите Configuration file is valid — всё в порядке. Перезапустите сервис:
sudo systemctl restart haproxy
sudo systemctl enable haproxy
Откройте необходимые порты:
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp
sudo ufw enable
Подробнее о настройке UFW и безопасности сервера читайте в блоге CLIQHOST.
Обратитесь к IP-адресу HAProxy-сервера несколько раз:
curl http://192.168.1.10
curl http://192.168.1.10
curl http://192.168.1.10
Ответы должны чередоваться между Backend: app1 и Backend: app2 — Round Robin работает.
Дашборд статистики доступен по адресу:
http://192.168.1.10:8080/haproxy?stats
Здесь вы увидите статус каждого backend-сервера, количество активных соединений, частоту запросов и многое другое.
HAProxy поддерживает несколько алгоритмов. Меняйте параметр balance в секции backend:
| Алгоритм | Описание |
|---|---|
roundrobin |
Циклическое распределение запросов |
leastconn |
Направляет к серверу с наименьшим числом соединений |
source |
IP Hash — один пользователь всегда попадает на один сервер |
uri |
По URI — полезно для кэширования |
random |
Случайный выбор сервера |
Для приложений с пользовательскими сессиями (например, интернет-магазины) используйте source или sticky sessions.
Для production-окружения трафик должен передаваться по HTTPS. HAProxy умеет самостоятельно обрабатывать SSL-соединения. Получить надёжный сертификат можно через SSL-сертификаты от CLIQHOST.
Объедините сертификат и закрытый ключ в один .pem-файл:
cat mydomain.crt mydomain.key > /etc/haproxy/certs/mydomain.pem
Обновите секцию frontend:
frontend https_front
bind *:443 ssl crt /etc/haproxy/certs/mydomain.pem
redirect scheme https if !{ ssl_fc }
default_backend http_back
frontend http_front
bind *:80
redirect scheme https code 301
Директива check у каждого backend-сервера включает автоматические проверки. HAProxy периодически отправляет GET / и исключает из ротации серверы, которые не отвечают.
Дополнительная настройка:
server app1 192.168.1.11:80 check inter 3s rise 2 fall 3
inter 3s — проверка каждые 3 секундыrise 2 — сервер считается рабочим после 2 успешных ответов подрядfall 3 — исключается после 3 неудачных ответов подрядЕсли нагрузка вашего проекта превышает возможности одного VPS, рассмотрите управляемый выделенный сервер — CLIQHOST берёт на себя администрирование, мониторинг и обновления. Для тех, кто предпочитает полный контроль, доступен неуправляемый выделенный сервер. HAProxy легко справляется с миллионами запросов в сутки на мощном железе.
cp haproxy.cfg haproxy.cfg.bak перед изменениями.stats auth.timeout server до 60s.option httpchk — без health checks трафик пойдёт и на упавшие серверы.systemctl enable haproxy.HAProxy — зрелый и надёжный инструмент, который превращает вашу инфраструктуру из единой точки отказа в масштабируемую и отказоустойчивую систему. Следуя этому руководству, вы получите рабочий балансировщик нагрузки с автоматическими проверками, SSL и веб-мониторингом.
Начните прямо сейчас с VPS NVMe от CLIQHOST — высокая производительность и SSD-хранилище для требовательных задач. Если хотите, чтобы настройку выполнили специалисты, воспользуйтесь услугой администрирования серверов. Есть вопросы? Свяжитесь с нашей командой — мы всегда готовы помочь.
Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."