温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HAProxy负载均衡如何配置

发布时间:2026-09-24 16:06:39 来源:亿速云 阅读:83 作者:小樊 栏目:系统运维

下面给你一个HAProxy 负载均衡的实用配置指南,从基础到常见场景,适合生产环境参考。


一、HAProxy 基础概念

HAProxy 主要分三部分:

  1. global:全局配置(进程、日志、用户)
  2. defaults:默认参数(可被 frontend / backend 继承)
  3. frontend / backend(或 listen)
    • frontend:接收客户端请求
    • backend:转发到后端服务器

二、最简负载均衡示例(HTTP)

1️⃣ 安装

# CentOS / Rocky
yum install -y haproxy

# Ubuntu / Debian
apt install -y haproxy

2️⃣ 基础配置文件(/etc/haproxy/haproxy.cfg)

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

✅ 效果:

  • 访问 HAProxy IP
  • 请求按 轮询(roundrobin) 分发到 web1 / web2

三、常见负载均衡算法

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

四、TCP 负载均衡(如 MySQL)

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 次失败算下线

六、HTTPS / SSL termination

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


七、会话保持(Session 保持)

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 网关、数据库),我可以给你针对性配置模板。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手