Skip to content

HAProxy 负载均衡

负载均衡算法

1. roundrobin (轮询)

适用于后端服务器性能相近的场景,默认支持 4096 个后端服务器。

balance roundrobin

2. source (源 IP 哈希)

相同来源的请求始终发送到同一后端服务器。

balance source

3. leastconn (最少连接)

请求发送到当前连接数最少的服务器,适合长连接场景。

balance leastconn

四层 vs 七层负载均衡

四层 (TCP 模式)

frontend tcp_front
    bind *:80
    mode tcp
    default_backend tcp_servers

backend tcp_servers
    mode tcp
    balance roundrobin
    server web1 192.168.1.10:80 check
    server web2 192.168.1.11:80 check

七层 (HTTP 模式)

frontend http_front
    bind *:80
    mode http
    default_backend http_servers

backend http_servers
    mode http
    balance roundrobin
    server web1 192.168.1.10:80 check inter 2000ms rise 2 fall 3
    server web2 192.168.1.11:80 check inter 2000ms rise 2 fall 3

健康检查参数

参数说明
inter 2000ms检查间隔 2 秒
rise 2连续 2 次成功则认为上线
fall 3连续 3 次失败则认为下线
slowstart 30s新节点逐步增加权重

会话保持

基于 Cookie 实现会话保持:

backend web_servers
    balance roundrobin
    cookie SERVERID insert indirect nocache
    server web1 192.168.1.10:80 check cookie s1
    server web2 192.168.1.11:80 check cookie s2