下面给你一个常见、实用的 HAProxy 高可用代理配置方案,分为 架构说明 → 安装 → 基础配置 → 高可用(Keepalived)→ 健康检查 → 常用优化 几个部分。
VIP (虚拟IP)
|
+-----+------+
| Keepalived |
+-----+------+
|
+-----+------+ +-----+------+
| HAProxy 1 |<----->| HAProxy 2 |
+-----+------+ +-----+------+
| |
+-----+------+ +-----+------+
| 后端服务1 | | 后端服务2 |
+------------+ +------------+
yum install -y haproxy
apt update
apt install -y haproxy
配置文件:/etc/hapee-2.8/haproxy.cfg 或 /etc/haproxy/haproxy.cfg
global
log /dev/log local0
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 http
option httplog
option dontlognull
timeout connect 5s
timeout client 30s
timeout server 30s
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
option httpchk GET /healthz
server web1 192.168.1.11:8080 check
server web2 192.168.1.12:8080 check
✅ check:开启健康检查
✅ /healthz:后端健康检查接口
listen stats
bind *:8404
stats enable
stats uri /stats
stats refresh 10s
stats admin if TRUE
浏览器访问:
http://IP:8404/stats
yum install -y keepalived
# 或
apt install -y keepalived
/etc/keepalived/keepalived.conf
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
virtual_ipaddress {
192.168.1.100
}
track_script {
chk_haproxy
}
}
state BACKUP
priority 100
systemctl enable haproxy keepalived
systemctl start haproxy keepalived
VIP:192.168.1.100
客户端只访问 VIP,不直接访问 HAProxy 节点。
frontend https_front
bind *:443 ssl crt /etc/haproxy/certs/example.pem
default_backend http_back
✅ 使用 leastconn 替代 roundrobin(长连接场景)
✅ 后端开启 check port
✅ 限制连接数防止雪崩
✅ 开启 tcpka / http-keep-alive
✅ 多节点 Keepalived + 单 VIP
# 查看状态
systemctl status haproxy
# 检查配置
haproxy -c -f /etc/haproxy/haproxy.cfg
# VIP 是否漂移
ip a | grep 192.168.1.100
如果你愿意,我可以:
你可以直接说:「我想代理 XXX 服务」。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。