Nginx 负载均衡策略实战:轮询、IP 哈希与权重详解
📌 本文来自「码农资讯网」,专注 DevOps、PHP、数据库、系统运维干货。欢迎访问:www.codesou.cn
一、前言
随着业务访问量的增加,单台服务器往往无法满足高并发请求,负载均衡(Load Balancing)成为架构中不可或缺的一环。Nginx 作为轻量高性能的 Web 服务器,内建了强大的负载均衡能力。
本篇文章将深入讲解 Nginx 的三种主流负载均衡策略:
轮询(Round Robin)
IP 哈希(IP Hash)
权重分配(Weight)
二、Nginx 负载均衡基本结构
http { upstream backend { server 192.168.1.10; server 192.168.1.11; } server { listen 80; location / { proxy_pass http://backend; } } }
上面的 upstream
块就是配置负载均衡策略的地方。
三、轮询(默认策略)
🎯 特点:
默认使用
请求依次分发到后端各节点
不考虑服务器负载与响应时间
🔧 配置示例:
upstream backend { server 192.168.1.10; server 192.168.1.11; server 192.168.1.12; }
✅ 使用场景:
适用于后端服务器配置一致、负载能力相近的场景。
四、权重(Weight)策略
🎯 特点:
每台服务器可分配不同权重
权重越高,获得请求比例越高
🔧 配置示例:
upstream backend { server 192.168.1.10 weight=3; server 192.168.1.11 weight=1; }
上述配置中,192.168.1.10
的请求占比大约是 75%
,192.168.1.11
占 25%
。
✅ 使用场景:
后端服务器性能差异较大,需要精细化流量控制。
五、IP 哈希(ip_hash)
🎯 特点:
同一个 IP 的请求始终转发到同一个后端服务器
适用于需要会话保持(如登录态)的业务场景
🔧 配置示例:
upstream backend { ip_hash; server 192.168.1.10; server 192.168.1.11; }
🚨 注意事项:
ip_hash
不支持 weight某节点宕机时会话可能丢失
六、策略对比一览
策略 | 会话保持 | 可控性 | 容错性 | 适用场景 |
---|---|---|---|---|
轮询 | ❌ | ★★ | ★★★ | 简单流量分发 |
权重 | ❌ | ★★★ | ★★★ | 后端性能差异 |
IP 哈希 | ✅ | ★ | ★★ | 登录态、用户会话保持 |
七、进阶策略(了解)
除了上述基础策略,还可以结合第三方模块实现更智能的负载均衡:
Least Connections(最少连接)
Fair Module(按响应时间调度)
健康检查模块(upstream_check_module)
八、总结
Nginx 的负载均衡机制非常强大且配置灵活。在实际运维部署中,应根据业务场景、用户分布、服务器性能来合理选择策略,确保高可用、高并发、高性能的服务体验。
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!