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 安全基础