| Протестировано |
|---|
Ubuntu: 22.04, 24.04 |
HAProxy (High Availability Proxy) — это бесплатное программное обеспечение с открытым исходным кодом для балансировки нагрузки и проксирования. Оно предназначено для упрощения и защиты современных архитектур приложений, позволяя распределять входящие запросы по нескольким backend-серверам. Это особенно полезно при высокой нагрузке, когда один сервер не справляется с потоком подключений. HAProxy популярен благодаря своей эффективности, надежности, низкому потреблению ресурсов (памяти и CPU) и поддержке различных протоколов, включая HTTP, HTTPS и TCP.
В этой статье мы рассмотрим процесс установки и настройки HAProxy на Ubuntu для балансировки нагрузки между двумя веб-серверами Apache. Все команды выполняются с правами root или с использованием sudo.

Требования
Для настройки нам потребуется:
- Один сервер с Ubuntu для установки HAProxy (фронтенд).
- Два сервера с Ubuntu для веб-серверов Apache (backend).
- Доступ с правами root (или sudo) на всех серверах.
- Базовые знания работы в терминале Linux.
Предположим, что IP-адреса серверов следующие (замените на свои):
- HAProxy: 192.168.56.10
- Apache1 (backend1): 192.168.56.11
- Apache2 (backend2): 192.168.56.12
Убедитесь, что все серверы обновлены: выполните sudo apt update && sudo apt upgrade -y на каждом.
Настройка backend-серверов Apache
Сначала настроим два backend-сервера с Apache для демонстрации балансировки. Установим Apache из стандартных репозиториев Ubuntu.
На каждом backend-сервере выполните:
sudo apt update
sudo apt install apache2 -y
После установки создадим простые тестовые страницы, чтобы отличать серверы:
На первом backend1:
echo "<h1>Это первый backend-сервер Apache</h1>" | sudo tee /var/www/html/index.htmlНа втором backend2:
echo "<h1>Это второй backend-сервер Apache</h1>" | sudo tee /var/www/html/index.htmlЗапустите и добавьте Apache в автозагрузку:
sudo systemctl start apache2
sudo systemctl enable apache2Проверьте статус: sudo systemctl status apache2. Серверы готовы.
Установка HAProxy
HAProxy доступен в стандартных репозиториях Ubuntu. Установите его на фронтенд-сервере:
sudo apt update
sudo apt install haproxy -y
После установки запустите службу и добавьте её в автозагрузку:
sudo systemctl start haproxy
sudo systemctl enable haproxyПроверьте статус: sudo systemctl status haproxy. Вывод должен показывать, что служба активна.

Конфигурация HAProxy.
Основной файл конфигурации — /etc/haproxy/haproxy.cfg. Откройте его в редакторе (например, nano: sudo nano /etc/haproxy/haproxy.cfg).
Оставьте разделы global и defaults без изменений (они настроены по умолчанию). Добавьте в конец файла разделы для frontend и backend:
frontend apache_front
bind *:80
mode http
option forwardfor
default_backend apache_backend_servers
backend apache_backend_servers
mode http
balance roundrobin
server backend1 192.168.56.11:80 check
server backend2 192.168.56.12:80 checkbind *:80: Прослушивание на порту 80.mode http: Режим для HTTP-трафика.option forwardfor: Передача оригинального IP клиента (X-Forwarded-For).balance roundrobin: Алгоритм балансировки (по кругу).server ... check: Backend-серверы с проверкой доступности.
Сохраните файл и перезапустите HAProxy: sudo systemctl restart haproxy.

Если возникнут ошибки, проверьте синтаксис: sudo haproxy -f /etc/haproxy/haproxy.cfg -c.
Проверка работы HAProxy
Откройте веб-браузер и перейдите по адресу http://192.168.56.10 (IP HAProxy). При первом запросе вы увидите страницу с одного backend-сервера, при обновлении — с другого (благодаря roundrobin).

Обновите страницу несколько раз, чтобы убедиться в балансировке.

Для мониторинга добавьте в конфиг раздел статистики (опционально):
listen stats
bind *:8404
stats enable
stats uri /stats
stats hide-version
stats admin if LOCALHOSTЗатем перейдите по http://192.168.1.10:8404/stats для просмотра статистики.
Заключение.
В этой статье мы рассмотрели установку и настройку HAProxy на Ubuntu для распределения нагрузки между двумя веб-серверами Apache. Это простая конфигурация, которая повышает производительность, доступность и отказоустойчивость вашего приложения. Для продакшена рекомендуется добавить HTTPS (с сертификатами), более сложные проверки здоровья серверов и мониторинг логов (/var/log/haproxy.log). HAProxy легко масштабируется — добавьте больше backend-серверов по мере роста нагрузки.
Если у вас возникнут вопросы, ознакомьтесь с официальной документацией HAProxy или форумами Ubuntu.
Читайте также
- Структура каталогов Linux
- Атрибуты файлов в Linux
- Linux Scheduler: Автоматизация задач с Cron и Systemd Timers
- CentOS: от классики до Stream.
- Установка и настройка Linux Terminal Server Project (LTSP)
Было ли это полезно?
1 / 0