Назад | Перейти на главную страницу

Отказ системы, когда не работает только один из двух серверов HAProxy. Восстановление после сбоя не работает

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

У меня есть 2 виртуальные машины HAProxy и 2 виртуальные машины Apache (бродячие машины) следующим образом.

192.168.50.11 HAPROXY VM1
192.168.50.12 HAPROXY VM2
192.168.50.21 APACHE VM1
192.168.50.22 APACHE VM2

192.168.50.10 FLOATING IP - set in keepalived of both HAProxy servers above

Если я отключу один из серверов Apache и позвоню http://192.168.50.10 система по-прежнему работает, и это нормально. Однако, если я отключу один из серверов HAProxy, вся служба отключится. Исходя из моих приведенных ниже конфигураций, не могли бы вы сказать мне, что мне здесь не хватает?

НАСТРОЙКИ HAPROXY НА ОБЕИХ СЕРВЕРАХ

/ и т.д. / по умолчанию / haproxy

ENABLED=1

/etc/haproxy/haproxy.cfg

global
    log /dev/log local0
    log 127.0.0.1 local1 notice
    user haproxy
    group haproxy
    maxconn 2000
    daemon

defaults
    log global
    mode http
    option httplog
    option dontlognull
    retries 3
    option redispatch
    timeout connect 5000
    timeout client 50000
    timeout server 50000

listen webservers 192.168.50.10:80
    balance roundrobin
    stats enable
    stats auth admin:admin
    stats uri /haproxy?stats
    option httpchk
    option forwardfor
    option http-server-close
    server webserver1 192.168.50.21:80 check
    server webserver2 192.168.50.22:80 check

СОХРАНЯЕМЫЕ НАСТРОЙКИ НА ОБЕИХ СЕРВЕРАХ

/etc/sysctl.conf

net.ipv4.ip_nonlocal_bind=1

и т.д. / keepalived / keepalived.conf

vrrp_script chk_haproxy {
    script "killall -0 haproxy"
    #Ping every 2 seconds
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    interface eth0
    state MASTER
    virtual_router_id 51
    priority 11
    virtual_ipaddress {
        192.168.50.10
    }
    track_script {
        chk_haproxy
    }
}

Примечание: Только priority зависит от виртуальной машины, поэтому это priority 11 для 192.168.50.11 HAPROXY VM1 машина и priority 12 для 192.168.50.12 HAPROXY VM2 машина.

Я создал этот пример после прочтения сообщений в блоге ниже.

Как я и думал, в файле конфигурации keepalived были небольшие ошибки.

state MASTER для 192.168.50.11 # This is the master HAProxy

state BACKUP для 192.168.50.12 # This is the failover HAProxy

И

priority 12 для 192.168.50.11 # the higher priority goes with the master HAProxy

priority 11 для 192.168.50.12