Nginx 负载均衡策略实战:轮询、IP 哈希与权重详解

阅读:15 2025-07-21

📌 本文来自「码农资讯网」,专注 DevOps、PHP、数据库、系统运维干货。欢迎访问:www.codesou.cn

微信截图_20250718172543.png


一、前言

随着业务访问量的增加,单台服务器往往无法满足高并发请求,负载均衡(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.1125%

✅ 使用场景:

后端服务器性能差异较大,需要精细化流量控制。


五、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 的负载均衡机制非常强大且配置灵活。在实际运维部署中,应根据业务场景、用户分布、服务器性能来合理选择策略,确保高可用、高并发、高性能的服务体验。


标签: Nginx
声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!