Як налаштувати HAProxy для балансування навантаження з Keepalived

09/01/2026
| instruction | iron_will | 0 | 44 | |

Вступ

У сучасних високонавантажених системах питання відмовостійкості та масштабування є критичними. HAProxy — один із найпопулярніших L4/L7 балансувальників навантаження, який широко використовується для розподілу трафіку між серверами. Проте сам по собі HAProxy не забезпечує високої доступності (High Availability).

Для усунення цієї проблеми зазвичай використовують Keepalived, який реалізує протокол VRRP (Virtual Router Redundancy Protocol) та дозволяє автоматично перемикати віртуальну IP-адресу (VIP) між кількома вузлами HAProxy у разі збою.

У цій статті розглянемо:

  • базові принципи роботи HAProxy та Keepalived;

  • архітектуру HA-кластера;

  • покрокове налаштування;

  • перевірку працездатності.

Встановлення HAProxy

На обох балансувальниках:

sudo apt update
sudo apt install -y haproxy

Перевірка версії:

haproxy -v

Базове налаштування HAProxy

Файл конфігурації:

/etc/haproxy/haproxy.cfg

Global та defaults

global
    log /dev/log local0
    log /dev/log local1 notice
    daemon
    maxconn 50000

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    timeout connect 5s
    timeout client  30s
    timeout server  30s

Frontend

frontend http_front
    bind *:80
    default_backend app_back

Backend з health-check

backend app_back
    balance roundrobin
    option httpchk GET /health
    http-check expect status 200

    server app01 10.0.0.11:80 check
    server app02 10.0.0.12:80 check
    server app03 10.0.0.13:80 check

Перевірка конфігурації

sudo haproxy -c -f /etc/haproxy/haproxy.cfg
sudo systemctl restart haproxy
sudo systemctl enable haproxy

Встановлення Keepalived

На обох HAProxy-вузлах:

sudo apt install -y keepalived

Налаштування Keepalived

Файл:

/etc/keepalived/keepalived.conf

MASTER (LB1)

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass StrongPassword123
    }

    virtual_ipaddress {
        10.0.0.100/24
    }

    track_script {
        chk_haproxy
    }
}

vrrp_script chk_haproxy {
    script "pidof haproxy"
    interval 2
    weight -20
}

BACKUP (LB2)

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass StrongPassword123
    }

    virtual_ipaddress {
        10.0.0.100/24
    }

    track_script {
        chk_haproxy
    }
}

vrrp_script chk_haproxy {
    script "pidof haproxy"
    interval 2
    weight -20
}

Важливо:

  • interface має відповідати реальному мережевому інтерфейсу.

  • virtual_router_id має бути однаковим на обох вузлах.

  • priority визначає, який вузол стане MASTER.

Запуск та перевірка

sudo systemctl restart keepalived
sudo systemctl enable keepalived
Перевірка VIP:
ip addr show eth0
На MASTER-вузлі має бути присутня віртуальна IP-адреса.

Тестування failover

  1. Зупиніть HAProxy або Keepalived на MASTER:

    sudo systemctl stop haproxy
  2. Переконайтеся, що VIP перейшла на BACKUP-вузол.

  3. Відновіть сервіс та перевірте повернення ролі MASTER (за потреби).

Рекомендації для production

  • Використовуйте HTTPS та окремий frontend для TLS

  • Додайте HAProxy stats для моніторингу

  • Логування через rsyslog або ELK

  • Використовуйте unicast VRRP у хмарних середовищах

  • Обмежте VRRP трафік firewall-правилами


Related posts

Захист MikroTik: базовий та розширений рівень

Вступ Firewall у MikroTik RouterOS є одним із ключових механізмів захисту мережевої інфраструктури. Він забезпечує гнучке керування трафіком та дозволяє будувати як базові, так і складні політики безпеки. Проте за відсутності коректної конфігурації...

instruction iron_will 11/01/2026

Налаштування Honeypot на MikroTik RouterOS

Вступ Honeypot - це механізм активної безпеки, призначений для виявлення, аналізу та фіксації спроб несанкціонованого доступу до мережевої інфраструктури. У контексті MikroTik RouterOS honeypot зазвичай реалізується як набір правил firewall, сервісі...

instruction iron_will 09/01/2026

Базове налаштування MikroTik RouterOS

Вступ Маршрутизатори MikroTik з операційною системою RouterOS широко використовуються в корпоративних і провайдерських мережах завдяки гнучкості, стабільності та широкому набору мережевих функцій. Після першого ввімкнення пристрій потребує базового...

instruction iron_will 09/01/2026

Comments (0)

Commenting is available to authorized users only.

This website uses cookies to improve your experience. Learn more