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

 更新时间:2025年10月31日 08:20:33   作者:就叫飞六吧  
本文主要介绍了Nginx几种负载均衡模式的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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 负载均衡模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx缓存以及清除缓存的使用

    nginx缓存以及清除缓存的使用

    本文主要介绍了nginx缓存以及清除缓存的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • k8s部署nginx访问Tomcat的实现示例

    k8s部署nginx访问Tomcat的实现示例

    本文介绍了如何使用Kubernetes部署Nginx,并通过Nginx访问Tomcat,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • nginx配置二级域名的示例代码

    nginx配置二级域名的示例代码

    这篇文章主要介绍了nginx配置二级域名的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • nginx状态码的使用及说明

    nginx状态码的使用及说明

    本文系统介绍了HTTP状态码分类及常见代码含义,分为1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)五类,涵盖200、301、403、404、500等典型状态码,说明其应用场景与响应机制
    2025-10-10
  • Nginx+PHP8.0支持视频上传的项目实践

    Nginx+PHP8.0支持视频上传的项目实践

    在Ubuntu 20.04上配置Nginx和PHP 8.0以支持视频上传,介绍了调整Nginx和PHP的配置文件,增加上传文件大小限制,调整超时时间和缓冲区大小等相关配置,感兴趣的可以了解一下
    2025-02-02
  • Nginx搭建负载均衡集群的实现

    Nginx搭建负载均衡集群的实现

    这篇文章主要介绍了Nginx搭建负载均衡集群的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • nginx高可用集群的实现过程

    nginx高可用集群的实现过程

    这篇文章主要介绍了nginx高可用集群的实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Nginx配置图片服务器(极简配置)

    Nginx配置图片服务器(极简配置)

    本文主要介绍了主要是Nginx做静态图片服务器的详情配置说明,还包括做反向代理、动静分离、负载均衡的极简配置,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • Nginx访问限制配置详解

    Nginx访问限制配置详解

    nginx访问限制可以基于两个方面,一个是基于ip的访问控制,另一个是基于用户的信任登陆控制,本文就详细的介绍了这两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • nginx-ingress-controller部署配置详解

    nginx-ingress-controller部署配置详解

    这篇文章主要为大家介绍了nginx ingress controller的部署配置,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11

最新评论