两台Centos服务器,分别为118、119
一个未被使用的ip地址,180
yum -y install haproxy
vi /usr/lib/systemd/system/haproxy.service
- 在 ExecStart 前添加 ExecStartPre
ExecStartPre=/usr/bin/mkdir -p /run/haproxy
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
nbproc 1
defaults
log global
timeout connect 5000
timeout client 50000
timeout server 50000
listen frontend
bind 0.0.0.0:80
mode tcp
option tcplog
balance source
server s1 [ip地址] check inter 10000 fall 2 rise 2 weight 1
server s2 [ip地址] check inter 10000 fall 2 rise 2 weight 1
yum -y install keepalived
yum -y install psmisc
- 编辑 keepalived.conf 文件,两台服务器会分配两个角色:master、backup,分别需要不同的配置。
vi /etc/keepalived/keepalived.conf
global_defs {
router_id 192.168.22.118
}
vrrp_script check-haproxy {
script "killall -0 haproxy"
interval 5
weight -30
}
vrrp_instance VI-lb {
state MASTER
priority 120
dont_track_primary
interface ens160
virtual_router_id 52
advert_int 3
track_script {
check-haproxy
}
virtual_ipaddress {
192.168.22.180
}
}
global_defs {
router_id 192.168.22.119
}
vrrp_instance VI-lb {
state BACKUP
priority 110
dont_track_primary
interface ens160
virtual_router_id 52
advert_int 3
virtual_ipaddress {
192.168.22.180
}
}
systemctl daemon-reload
- 设置 haproxy和keepalived 开机自启并重新启动
systemctl enable haproxy && systemctl restart haproxy
systemctl enable keepalived && systemctl restart keepalived