当前位置: 代码网 > it编程>数据库>Mysql > Nginx几种负载均衡模式的实现示例

Nginx几种负载均衡模式的实现示例

2025年10月31日 Mysql 我要评论
1.轮询 (round robin) - 默认模式按顺序逐一分配请求到各个后端服务器。upstream backend { server 192.168.1.10; server 192.

1.轮询 (round robin) - 默认模式

按顺序逐一分配请求到各个后端服务器。

upstream backend {
    server 192.168.1.10;
    server 192.168.1.11;
    server 192.168.1.12;
}

2.加权轮询 (weighted round robin)

根据权重分配请求,权重越高,被分配的请求越多。

upstream backend {
    server 192.168.1.10 weight=3;
    server 192.168.1.11 weight=2;
    server 192.168.1.12 weight=1;
}

3.ip 哈希 (ip hash)

根据客户端 ip 地址进行哈希计算,同一 ip 的请求会被分配到同一台服务器,可以解决 session 共享问题。

upstream backend {
    ip_hash;
    server 192.168.1.10;
    server 192.168.1.11;
    server 192.168.1.12;
}

4.最少连接 (least connections)

将请求分配给当前连接数最少的服务器。

upstream backend {
    least_conn;
    server 192.168.1.10;
    server 192.168.1.11;
    server 192.168.1.12;
}

5.一致性哈希 (consistent hash)

需要第三方模块支持,根据指定的 key 进行哈希分配。

upstream backend {
    hash $request_uri consistent;
    server 192.168.1.10;
    server 192.168.1.11;
    server 192.168.1.12;
}

6.通用哈希 (generic hash)

可以基于任意变量进行哈希。

upstream backend {
    hash $remote_addr;  # 基于客户端ip
    # hash $cookie_jsessionid;  # 基于cookie
    server 192.168.1.10;
    server 192.168.1.11;
}

7.随机 (random)

随机选择一台服务器(nginx 1.15.1+ 版本支持)。

upstream backend {
    random;
    server 192.168.1.10;
    server 192.168.1.11;
    server 192.168.1.12;
}

常用参数配置

upstream backend {
    server 192.168.1.10 weight=5 max_fails=3 fail_timeout=30s;
    server 192.168.1.11 weight=3;
    server 192.168.1.12 backup;  # 备用服务器
    server 192.168.1.13 down;    # 标记为不可用
}

参数说明:

  • weight: 权重,默认为 1
  • max_fails: 允许请求失败的次数,默认为 1
  • fail_timeout: 失败超时时间,默认为 10 秒
  • backup: 备份服务器,只有其他服务器都不可用时才使用
  • down: 标记服务器永久不可用

最常用的模式:

  • 无状态应用:轮询、加权轮询、最少连接
  • 有状态应用:ip hash、一致性哈希

到此这篇关于nginx几种负载均衡模式的实现示例的文章就介绍到这了,更多相关nginx 负载均衡模式内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com