Прежде всего, мой опыт работы со стеком 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