全面了解 NGINX 的负载均衡算法

NGINX 提供多种负载均衡方法,以应对不同的流量分发需求。常用的算法包括:最少连接、最短时间、通用哈希、随机算法和 IP 哈希。这些负载均衡算法都通过独立指令来定义,每种算法都有其独特的应用场景。

image.png

以下负载均衡方法(IP 哈希除外)适用于 HTTP、TCP 和 UDP 上游池:

轮询

轮询(Round Robin)是 NGINX 默认的负载均衡方法,按服务器列表的顺序分发请求。此方法适用于所有服务器具有相似性能的场景。

加权轮询:如果服务器的处理能力不同,可以通过 weight 参数进行权重设置。权重越高,服务器接收的请求越多。加权轮询的基本原理是通过加权平均值来决定流量分配。

最少连接

least_conn 方法通过将请求代理到当前连接数最少的服务器,帮助优化资源利用率。它非常适用于处理长时间连接(如 WebSocket)的场景。权重同样可以结合使用,以进一步控制负载分配。

最短时间

least_time 仅在 NGINX Plus 中提供,是一种更加智能的负载均衡算法。它不仅考虑服务器的连接数,还优先选择响应时间最短的服务器。这种方法特别适合高性能应用,能够帮助减少延迟并提高响应速度。

参数设置:用户需指定 header(使用响应头的时间)或 last_byte(使用完整响应的时间)作为优化依据。可选参数 inflight 还可以将未完成的请求考虑在内。

通用哈希

hash 算法根据管理员定义的哈希值(基于请求的特定文本、变量或两者结合)将请求定向到特定服务器。这种方法在需要请求始终发往同一服务器的场景(如缓存或会话一致性)中非常有用。

注意事项:当服务器池发生变化(添加或删除服务器)时,哈希分配会重新计算,因此某些会话可能会重新路由。

随机算法

random 算法用于在服务器池中随机选择一台服务器处理请求。它支持 weight 参数来影响服务器的选择概率。通过 two [method] 参数,NGINX 可随机选择两台服务器,并使用指定的负载均衡方法(如 least_conn)在这两台服务器间分配请求。

IP 哈希

ip_hash 仅适用于 HTTP 协议。此方法基于客户端 IP 地址的哈希值,将请求分配到特定服务器。使用此方法可以确保来自同一客户端的请求始终被分发到同一台服务器,特别适合需要维持会话一致性的应用场景。

IP 哈希的工作原理:IP 哈希算法使用 IPv4 地址的前三个八位组或完整的 IPv6 地址生成哈希值。这不同于通用哈希算法,后者使用远程变量来生成哈希。

最后

每种负载均衡算法都有其独特的优势和应用场景,结合需求,合理选择负载均衡方法能够显著提升系统的性能和可用性

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

aws 把vpc残留删除干净

最近忘了把vpc 删干净导致又被收了冤大头钱 在删除vpc 的收发现又eni在使用,但是忘了是哪个资源在占用 先用命令行把占用的资源找出来停掉 使用 AWS 命令行界面(CLI)来查看 VPC 的使用情况 列出子网: aws ec2 describe-subnets …

【Java】常用方法合集

以 DemoVo 为实体 import lombok.Data; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;Data ExcelIgnoreUnannotated public class ExportPromoteUnitResult {private String id;ExcelProperty(value &qu…

数据结构6——树与二叉树

在本专栏的前五篇中,我们学习了顺序表、链表、栈和队列,他们本质上都是线性表。有线性表就存在非线性表,现在我们就来学习一下结构更复杂的非线性表——树。 1. 树的概念与结构 1.1 树的概念 树是一种非线性的数据结构,它是由n&…

Go语言Gin框架的常规配置和查询数据返回json示例

文章目录 路由文件分组查询数据库并返回jsonservice层controller路由运行效果 启动多个服务 在 上一篇文章《使用Go语言的gorm框架查询数据库并分页导出到Excel实例》 中主要给大家分享了较多数据的时候如何使用go分页导出多个Excel文件并合并的实现方案,这一篇文章…

Linux之远程连接服务器

远程连接服务器的类型 文字接口 明文传输:Telnet 23、RSH等,目前非常少用; 加密传输:SSH为主,已经取代明文传输 ssh提供两个服务器功能:1.类似于telnet;2.类似于ftp的sftp-serve…

特斯拉自动驾驶出租车计划变成泡影?联想与Meta合作,推出面向PC的个人AI智能体AI Now|AI日报

文章推荐 Swarms Corporation创始人Kye Gomez实锤OpenAI多智能体Swarm抄袭其成果!|AI日报 今日热点 中国海油“海能”人工智能模型正式发布 近日,由中国海油与中国电信、科大讯飞等企业合作打造“海能”人工智能模型正式推出。 中国海油“…

Centos7搭建minio对象存储服务器

Centos7搭建minio对象存储服务器 安装二进制程序配置服务文件 安装二进制程序 参考:https://segmentfault.com/q/1010000042181876 minio中国版:https://www.minio.org.cn/download.shtml#/linux # 下载二进制程序 wget https://dl.min.io/server/min…

鸿蒙--应用首次启动

最终效果 前言 基于自定义弹框、首选项和页面路由实现一个模拟应用首次启动的案例。需要完成以下功能: 实现四个页面,启动页、隐私协议页、广告页和应用首页。实现自定义隐私协议弹窗,点击协议可查看隐私协议具体内容。页面间的路由跳转。相关概念 首选项:首选项为应用提供…

软件工程:图书管理系统甘特图

1 实验目的 熟悉GanttProject 软件环境,能够使用GanttProject绘制甘特图,进行项目管理与规划。 2 实验内容 为小型图书管理系统项目的实施计划绘制甘特图。 小型图书管理系统项目包含登录、浏览、管理读者、管理图书资料、管理书目、登记借书、登记还书、预定图书、…

Snort浅析

Snort简介 Snort是免费开源的IDS/IPS(入侵检测/防御系统)系统,于1998年开发,旨在检测和响应网络中的可疑活动。包含流量/协议分析、内容匹配等功能,并可用预定义规则检测和防止各种攻击。官方网站:https:/…

出口摩洛哥提示 | 燃气器具和设备,2024年12月20日起需要标识Cmim Mark

Cmim Mark 为了证明产品符合摩洛哥的技术法规及标准,指导消费者正确选购,并协助政府有效管理市场,所有依据第24-09号法律规定的产品,必须加贴清晰的Cmim Mark,方可顺利进入摩洛哥市场。 根据摩洛哥官方公报发布的关于…

K歌与露营最搭配,AISON爱畅K歌音箱让露营更有趣

据市场调研数据显示,中国露营经济核心市场规模和带动市场规模均呈现逐年上升趋势,预计到2025年,中国露营经济核心市场规模将达到2483.2亿元。同时,《2024小红书搜索推广白皮书》显示,城市出行、音乐、旅游和户外等娱乐…

redis的配置文件redis.conf解析

我的后端学习大纲 我的Redis学习大纲 1.1.Redis的配置文件: 1.Redis的配置文件名称是:redis.conf 2.在vim这个配置文件的时候,默认是不显示行号的,可以编辑下面这个文件,末尾加上set nu,就会显示行号: 1.…

STM32应用详解(5)USART串口初始化

文章目录 一、USART初始化二、代码说明1.原理图2.main函数3.USART串口初始化函数4.代码整体结构 三、USART串口初始化总结 一、USART初始化 所谓的对USART进行初始化,就是对USART固件库函数的调用,来完成串口(USART)的设置,比如设置波特率、…

Docker 搭建mysql

拉取mysql镜像 docker pull mysql # 拉取镜像 [rooteason ~]# docker pull mysql Using default tag: latest latest: Pulling from library/mysql 72a69066d2fe: Pull complete 93619dbc5b36: Pull complete 99da31dd6142: Pull complete 626033c43d70: Pull complete 37d…

开放式耳机什么品牌最好?热门开放式蓝牙耳机推荐!

如今,开放式耳机如雨后春笋般涌现,丰富的产品类型确实让不少消费者陷入了选择的困境。很多人不知道哪个牌子的耳机好用,不过别担心,我精心搜罗了一批兼具时尚外观与卓越性能的开放式耳机。作为有着多年音频设备研究经验的专业人士…

sql server 行转列及列转行

图1 图2 1.行转列 (图1->图2) 1.方法一 (数据库通用),使用max 加case when 函数 -- 行转列 图1->图2 SELECT name,MAX(CASE WHEN subject语文 THEN score ELSE 0 END) AS "语文",MAX(CASE WHEN subject数学 …

OpenAI GPT-o1实现方案记录与梳理

本篇文章用于记录从各处收集到的o1复现方案的推测以及介绍 目录 Journey Learning - 上海交通大学NYUMBZUAIGAIRCore IdeaKey QuestionsKey TechnologiesTrainingInference A Tutorial on LLM Reasoning: Relevant methods behind ChatGPT o1 - UCL汪军教授Core Idea先导自回归…

64页精品PPT | 汽车经销商数据应用解决方案

汽车经销商正面临前所未有的盈利能力挑战。从18年起 ,传统燃油车汽车行业开始步入低速增长阶段 ,卖车已经挣不到钱 ,利润往往来自任务完成的厂家返利;新兴的直营模式的出现 ,冲击了传统授权经销的方式 ,疫情…

【JS】双指针法获得满足四数之和且不重复的四元组

思路 本题做法与上一篇三数相加的做法相似,同样是使用双指针法,区别是这里多嵌一层循坏,遍历 i 和 j 的值( j i 1),思路可参考笔记: 【JS】双指针法获得满足三数之和且不重复的三元组https://…