下面给你一个HAProxy 负载均衡的实用配置指南,从基础到常见场景,适合生产环境参考。
HAProxy 主要分三部分:
# CentOS / Rocky
yum install -y haproxy
# Ubuntu / Debian
apt install -y haproxy
global
log /dev/log local0
maxconn 4096
user haproxy
group haproxy
defaults
log global
mode http
option httplog
timeout connect 5s
timeout client 30s
timeout server 30s
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
server web1 192.168.1.11:80 check
server web2 192.168.1.12:80 check
✅ 效果:
balance roundrobin # 轮询(默认)
balance leastconn # 最小连接数
balance source # 源 IP 哈希(会话保持)
示例:
backend http_back
balance leastconn
server web1 192.168.1.11:80 check
server web2 192.168.1.12:80 check
defaults
mode tcp
timeout connect 5s
timeout client 1h
timeout server 1h
listen mysql_cluster
bind *:3306
mode tcp
balance roundrobin
server db1 192.168.1.21:3306 check
server db2 192.168.1.22:3306 check
server web1 192.168.1.11:80 check
server web2 192.168.1.12:80 check
高级示例:
server web1 192.168.1.11:80 check inter 2000 rise 2 fall 3
参数说明:
inter 2000:每 2 秒检查一次rise 2:连续 2 次成功算健康fall 3:连续 3 次失败算下线frontend https_front
bind *:443 ssl crt /etc/haproxy/certs/example.pem
default_backend http_back
certs 文件是:
cat example.com.crt example.com.key > example.pem
backend http_back
balance source
server web1 192.168.1.11:80 check
server web2 192.168.1.12:80 check
或使用 cookie:
backend http_back
cookie SERVERID insert indirect nocache
server web1 192.168.1.11:80 check cookie s1
server web2 192.168.1.12:80 check cookie s2
# 检查配置
haproxy -c -f /etc/haproxy/haproxy.cfg
# 启动
systemctl start haproxy
# 开机自启
systemctl enable haproxy
✅ 开启日志
✅ 使用 check
✅ 后端至少 2 台
✅ TCP 用 mode tcp
✅ 高并发调 maxconn
如果你有具体场景(如 Kubernetes、HTTPS、WebSocket、API 网关、数据库),我可以给你针对性配置模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。