HAProxy是一款广泛应用于TCP/HTTP负载均衡器和高性能代理服务器的开源软件
以高并发、低延迟、高稳定性著称
安装软件:
apt install haproxy -y
修改配置:nano /etc/haproxy/haproxy.cfg
端口转发主备切换:
主备模式:默认走 A,A 不行了切 B。
快速感应:通过缩短检查间隔和超时时间,变相实现对“丢包”的感应(丢包会导致 TCP 握手变慢或失败)。
自动切回:当 A 连续多次检查正常后,自动切回 A。
配置参考:
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
defaults
log global
mode tcp # 使用 TCP 转发模式
option tcplog
option dontlognull
timeout connect 1s # 连接目标服务器的超时,缩短它可以更快发现丢包严重的节点
timeout client 10m # 客户端保持连接时间
timeout server 10m # 服务端保持连接时间
timeout check 1s # 健康检查本身的超时,建议与 connect 一致
# 配置监控界面 (可选,可以浏览器看节点状态)
listen stats
bind :19000
mode http
stats enable
stats uri /status
stats refresh 5s
stats auth admin:admin123 # 账号密码
# TCP 转发配置
# --------------第1组------------
frontend port-18005-in # frontend 唯一性
bind :18005 # HAProxy 本地监听端口
default_backend backend-18005 # 与backend对应
backend backend-18005 # backend 唯一性
mode tcp
option tcp-check # 使用 TCP 协议进行健康检查
# 策略解释:
# check: 开启检查
# inter 1000: 每 1 秒检查一次
# rise 5: 连续 5 次检查成功才认为恢复 (约 10 秒恢复)
# fall 2: 连续 2 次检查失败就切走 (约 4 秒感应)
# backup: 标记为备用节点
server server-A18005 1.1.1.1:18005 check inter 1000 rise 5 fall 2
server server-B18005 2.2.2.2:18005 check inter 1000 rise 3 fall 2 backup
# --------------第2组------------
frontend port-18885-in # frontend 唯一性
bind :18885 # HAProxy 本地监听端口
default_backend backend-18885 # 与backend对应
backend backend-18885 # backend 唯一性
mode tcp
option tcp-check # 使用 TCP 协议进行健康检查
# 策略解释:
# check: 开启检查
# inter 1000: 每 1 秒检查一次
# rise 5: 连续 5 次检查成功才认为恢复 (约 10 秒恢复)
# fall 2: 连续 2 次检查失败就切走 (约 4 秒感应)
# backup: 标记为备用节点
server server-A18885 3.3.3.3:18885 check inter 1000 rise 5 fall 2
server server-B18885 4.4.4.4:18885 check inter 1000 rise 3 fall 2 backup
#末尾需保留一行空白行,否则会报错
检查语法:
haproxy -c -f /etc/haproxy/haproxy.cfg
如果看到 Configuration file is valid,就说明通过了!
设置开机自启并重启服务:
systemctl enable haproxy
systemctl restart haproxy