ToolkitX
知识库工具箱

负载均衡

L4/L7 负载均衡、算法、健康检查

25min·高级

01. 负载均衡——银行柜台原理

负载均衡就是把流量「匀开」给多台服务器。就像银行开了好几个窗口——十个顾客来办事,只开一个窗口大家排长队,开五个窗口效率就高了。 网站流量一大,单台服务器扛不住,就需要多台一起干活。负载均衡器就是那个「大堂经理」,把每个请求合理分配到某台服务器上。

02. 分配策略——不同的「派活」方式

几种分配策略各有千秋: 轮询——一人一个轮流来,最简单公平 加权轮询——配置高的机器多分点活,能者多劳 最少连接——谁当前最闲就把请求发谁,比较智能 IP 哈希——同一客户端 IP 固定到同一台服务器,保证「回头客」找原来那台 随机——纯凭运气 选哪种取决于场景。服务器配置一样就用轮询。有好有差用加权。需要会话保持就用 IP 哈希。
nginx
# Nginx 负载均衡
upstream backend {
server 192.168.1.10:3000 weight=3;   # 加权轮询
server 192.168.1.11:3000 weight=2;
server 192.168.1.12:3000 weight=1;
keepalive 32;
}
server {
listen 80;
location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}
}

03. 四层 vs 七层——在哪一层分流

负载均衡可以在不同「海拔」干活: 四层(L4)——只看 IP 和端口做分发,简单粗暴速度快,相当于看快递单地址就派送 七层(L7)——能看到 HTTP 的具体内容(URL、Cookie、Header),可以做更精细的分流 比如根据 URL 把 /api 请求发到后端组 A,把 /static 发到组 B,这就是七层的活儿。Nginx、HAProxy 两者都支持。

04. 健康检查——「你还活着吗?」

负载均衡器需要知道后端哪些服务器还活着。健康检查就是定期去「敲门」——发探测请求看有没有正常回应。 某台服务器连续几次没回应,负载均衡就把它从可用列表踢出去,流量不再发它。等恢复了再自动加回来。整个过程对用户完全透明。
nginx
# Nginx 健康检查
upstream backend {
server 192.168.1.10:3000 max_fails=3 fail_timeout=30s;
server 192.168.1.11:3000 max_fails=3 fail_timeout=30s;
server 192.168.1.12:3000 backup;  # 备用
}
加一台 backup 当后手——平时不参与分流,只有其他全挂时才顶上。

知识测验

1/5正确 0

四层和七层负载均衡最关键的区别?

下一节

Web 安全基础

下一节