nginx下upstream模块详解

news2025/5/24 22:05:09

目录

一:介绍

二:特性介绍


一:介绍

Nginx的upstream模块用于定义后端服务器组,以及与这些服务器进行通信的方式。它是Nginx负载均衡功能的核心部分,允许将请求转发到多个后端服务器,并平衡负载。

在upstream模块中,你可以定义一个或多个后端服务器,并指定每个服务器的权重、端口号等属性。通过这些设置,Nginx可以根据不同的负载均衡算法将请求转发到后端服务器。

二:特性介绍

server:定义一个后端服务器,指定服务器的IP地址和端口号。可以添加其他相关属性,如权重、最大连接数等。

upstream backend {  
    server 192.168.0.100:8080;  
    server 192.168.0.101:8080 weight=2;  
}

balance:指定用于负载均衡的算法。Nginx提供了多种算法,如round-robin(轮询)、least_conn(最少连接数)等

upstream backend {  
    server 192.168.0.100:8080;  
    server 192.168.0.101:8080;  
    balance round-robin;  
}

failover、backup:这些指令可用于指定后端服务器的主备切换策略。当主服务器出现故障时,请求将被转发到备用服务器。

upstream backend {  
    server 192.168.0.100:8080 primary;  
    server 192.168.0.101:8080 backup;  
}

sticky:该指令可用于实现会话保持功能,将同一用户的请求转发到同一后端服务器。可以通过cookie或其他机制实现会话跟踪。

以下是Sticky的工作原理:

当客户端首次发起访问请求时,Nginx会检查请求头中是否包含cookie。如果cookie不存在,Nginx将以轮询的方式将请求分发给后端服务器。
后端服务器处理完请求后,将响应数据返回给Nginx。此时,Nginx会生成一个带route的cookie,并返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值。
客户端接收请求并保存带route的cookie。
当客户端下一次发送请求时,会带上route,Nginx根据接收到的cookie中的route值,将请求转发给对应的后端服务器。
通过这种方式,Sticky模块确保了同一个客户端的请求始终落在同一台服务器上,这有助于保持会话状态和数据一致性。这种机制在需要保持客户端与服务器之间持久连接的应用程序中特别有用,例如Web应用程序或实时通信系统。

ip_hash:该算法基于客户端的IP地址进行哈希计算,确保同一客户端的请求始终转发到同一后端服务器。这对于需要保持会话状态的应用程序很有用。

hash:使用自定义的哈希算法进行负载均衡。可以指定一个字符串作为键值,并根据该键值进行哈希计算来选择后端服务器。

least_conn:选择当前连接数最少的后端服务器进行处理。这种算法可以确保负载均衡更加均匀,避免某些服务器过载。

url_hash:基于URL参数进行哈希计算,并根据哈希值选择后端服务器。这种算法适用于某些特定的路由需求。

upstream backend {  
    hash $request_uri;  
    server 192.168.0.100:8080;  
    server 192.168.0.101:8080;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1355896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如潮好评!优秀选手视角下的第二届粤港澳大湾区(黄埔)国际算法算例大赛

为发挥国家实验室作用、推动地区大数据与人工智能算法的生态体系建设,琶洲实验室(黄埔)受广州市黄埔区政府委托,于 2022 年创办粤港澳大湾区(黄埔)国际算法算例大赛,推动原始创新、赋能社会经济…

以 Serverfull 方式运行无服务器服务

当前 IT 架构中最流行的用例是从 Serverfull 转向 Serverless 设计。在某些情况下,我们可能需要以 Serverfull 方式设计服务或迁移到 Serverfull 作为运营成本的一部分。 在本文中,我们将展示如何将 Kumologica flow 作为 Docker 容器运行。通常&#x…

力扣322. 零钱兑换(java语言实现 完全背包问题)

Problem: 322. 零钱兑换 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 该题目可以归纳为完全背包问题,最少需要多少物品能填满背包。该类问题大体思路如下 状态: int dp[ n n n][ w 1 w 1 w1] (其中 n n n表示有 n n n个物品, …

Python常用模块之hashlib

常用模块 - hashlib模块 一、简介 Python的hashlib提供了常见的摘要算法,如MD5、SHA1、SHA224、SHA256、SHA384、SHA512等算法。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的…

14.用户管理

目录 1、权限表 1、user表 1.用户列 2.权限列 3.安全列 4.资源控制列 2、db表和host 表 1.用户列 2.权限列 3. tables_priv 表和 columns _priv 表 4.procs_priv 表 2、账户管理 1. 登录和退出MySQL服务器 2、创建普通用户: 1.使用CREATE USER语创建…

URLDecoder: Illegal hex characters in escape (%) pattern - negative value

1、前提: 使用URLDecoder.decode(“字符串”“utf-8”);进行解码出现上述问题 2、原因: 字符串的内容出现%后不是一个16进制的数(即从0——FF) 3、解决方法: 检查传入的字符看是否%后有不是16进制的数…

【python测验】数字游戏 取模数 数位dp

这题目看得人感觉要失去梦想…… 题目: 看不懂也做不出来,python方法未知,记录几个可供参考的帖子。 LightOJ 1068 Investigation 算法提高篇–动态规划(八):数位DP(3)

Python处理音频

从video中抽取audio from moviepy.editor import VideoFileClip from pydub import AudioSegmentvideo_path /opt/audio/audios/video1.mp4 audio_path /opt/audio/audios/video1.wav # 提取的音频保存路径# 加载视频文件 video VideoFileClip(video_path)# 提取音频 audi…

多个微信的朋友圈如何高效管理?

大家都知道,在当今社交媒体盛行的时代,微信朋友圈已成为了我们交流和分享生活的重要平台。但是,对于那些同时管理多个微信号的人来说,如何高效省时地管理这些账号的朋友圈就成了一项挑战。 今天我将分享一个神奇的微信管理工具&a…

智能分析网关V4初始配置步骤大揭秘

众所周知,EasyCVR与智能分析网关V4相结合,打破了传统监控的桎梏,通过人工智能传统监控的方式,做到了网关与监控的完美融合。收到了很多用户的追捧,但很多用户在拿到网关后都不知道如何配置,本期小编就和大家…

【DevOps-02】Code编码阶段工具

一、简要说明 在code阶段,我们需要将不同版本的代码存储到一个仓库中,常见的版本控制工具就是SVN或者Git,这里我们采用Git作为版本控制工具,GitLab作为远程仓库。 Git安装安装GitLab配置GitLab登录账户二、Git安装 Git官网 Githttps://git-scm.com/

【Redux】自己动手实现redux和react-redux

1. React提供context的作用 在class组件的世界里,如果后代组件共享某些状态,比如主题色、语言键,则需要将这些状态提升到根组件,以props的方式从根组件向后代组件一层一层传递,这样则需要在每层写props.someData&#…

【模拟电路】非接触测电笔绘制、电子琴NE555

一、非接触测电笔原理图绘制 二、非接触测电笔PCB绘制 三、电子琴NE555制作过程及元器件选型 四、电子琴NE555原理图绘制 五、电子琴NE555PCB绘制 六、电子琴NE555最终效果 点击跳转 一、非接触测电笔原理图绘制 材料 电池 2032 电池底座 适用电池:CR2032 白色 C964762 NPN三…

2024年怎么提升学历?三大成人学历提升方式一次看懂!

2024年想提升到大专、本科学历该怎么做? 成人提升学历有自考、成考、开放大学三种途径。 不同的途径有不同的报名条件和拿证方式。 考生可以根据自己的实际情况选择适合自己的方式。 下面我们一起来看下,2024年怎么选适合自己的学历提升方式。 成人学…

数据结构【树篇】(二)

数据结构【树篇】(二) 文章目录 数据结构【树篇】(二)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件? 目录树(一)、树的存储(二)、树和森林的遍历——并查集(三)、并查集的优化 结语 前言 为什么突然想学算法了&#xf…

构建异步高并发服务器:Netty与Spring Boot的完美结合

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言IONetty1. 引入依赖2. 服务端4. 客户端结果 总结引导类-Bootstarp和ServerBootstrap连接-NioSocketChannel事件组-EventLoopGroup和NioEventLoopGroup 送书…

StarRocks 在小红书自助分析场景的应用与实践

作者:小红书 OLAP 研发负责人 王成 近两年 StarRocks 一直是小红书 OLAP 引擎体系里非常重要的部分,过去一年,小红书的 StarRocks 使用规模呈现出翻倍的增长速度,目前整体规模已经达到 30 个集群,CPU 规模已经达到了 3…

一文讲透怎样用SPSS做二项Logistic回归分析?结果如何解释?

推荐采用《SPSS统计分析入门与应用精解(视频教学版)》 杨维忠、张甜 清华大学出版社“7.4 二元Logistic回归分析” 的解答。 本节内容选自《SPSS统计分析入门与应用精解(视频教学版)》 杨维忠、张甜 清华大学出版社“7.4 二元Logi…

新手必看!STM32通用定时器-输入捕获!

一、用途与工作原理 用途:用于测量信号的参数,比如周期和频率。   工作原理:在输入捕获模式下,当捕获单元捕捉到外部信号的有效边沿(上升沿/下降 沿/双边沿)时,将计数器的当前值锁存到捕获/比较寄存器TIMx_CCR&#…