1 / 11
文档名称:

解析Nginx负载均衡.doc

格式:doc   大小:406KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

解析Nginx负载均衡.doc

上传人:luciferios08 2021/4/3 文件大小:406 KB

下载得到文件列表

解析Nginx负载均衡.doc

相关文档

文档介绍

文档介绍:对于一个大型网站来说,负载均衡是永恒的话题。随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP、Citrix NetScaler、Radware等等,虽然可以解决问题,但其高昂的价格却往往令人望而却步,因此负载均衡软件仍然是大部分公司的不二之选。nginx作为webserver的后起之秀,其优秀的反向代理功能和灵活的负载均衡策略受到了业界广泛的关注。本文将以工业生产为背景,从设计实现和具体应用等方面详细介绍nginx负载均衡策略。
关键字:nginx 负载均衡 反向代理

随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品,很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎,nginx就是其中的一个。资料个人收集整理,勿做商业用途
nginx第一个公开版本发布于2004年,。它的特点是稳定性高、功能强大、资源消耗低,从其目前的市场占有而言,nginx大有与apache抢市场的势头。其中不得不提到的一个特性就是其负载均衡功能,这也成了很多公司选择它的主要原因。本文将从源码的角度介绍nginx的内置负载均衡策略和扩展负载均衡策略,以实际的工业生产为案例,对比各负载均衡策略,为nginx使用者提供参考。文档收集自网络,仅用于个人学****br/>2. 源码剖析文档来自于网络搜索
nginx的负载均衡策略可以划分为两大类:内置策略和扩展策略。内置策略包含加权轮询和ip hash,在默认情况下这两种策略会编译进nginx内核,只需在nginx配置中指明参数即可。扩展策略有很多,如fair、通用hash、consistent hash等,默认不编译进nginx内核。由于在nginx版本升级中负载均衡的代码没有本质性的变化,,从源码角度分析各个策略。个人收集整理 勿做商业用途
. 加权轮询(weighted round robin)资料个人收集整理,勿做商业用途
轮询的原理很简单,首先我们介绍一下轮询的基本流程。如下是处理一次请求的流程图:个人收集整理 勿做商业用途
图中有两点需要注意,第一,如果可以把加权轮询算法分为先深搜索和先广搜索,那么nginx采用的是先深搜索算法,即将首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器;第二,当所有后端机器都down掉时,nginx会立即将所有机器的标志位清成初始状态,以避免造成所有的机器都处在timeout的状态,从而导致整个前端被夯住。文档来自于网络搜索
接下来看下源码。nginx源码的目录结构很清晰,加权轮询所在路径为nginx-.[c|h],在源码的基础上,针对重要的、不易理解的地方我加了注释。:个人收集整理 勿做商业用途
从变量命名中,我们就可以大致猜出其作用。其中,current_weight和weight的区别主要是前者为权重排序的值,随着处理请求会动态的变化,后者是配置值,用于恢复初始状态。文档收集自网络,仅用于个人学****br/>接下来看下轮询的创建过程,代码如下图所示。资料个人收集整理,勿做商业用途
这里有个tried变量需要做些说明。tried中记录了服务器当前是否被尝试连接过。他是一个位图。如果服务器数量小于32,则只需在一个int中即可记录下所有服务器状态。如果服务器数量大于32,则需在内存池中申请内存来存储。对该位图数组的使用可参考如下代码:文档收集自网络,仅用于个人学****br/>最后是实际的策略代码,逻辑很简单,代码实现也只有30行,直接上代码。个人收集整理 勿做商业用途
. ip hash文档来自于网络搜索
ip hash是nginx内置的另一个负载均衡的策略,流程和轮询很类似,只是其中的算法和具体的策略有些变化,如下图所示:文档收集自网络,仅用于个人学****br/>ip hash算法的核心实现如下图:资料个人收集整理,勿做商业用途
从代码中可以看出,hash值既与ip有关又与后端机器的数量有关。经过测试,上述算法可以连续产生1045个互异的value,这是该算法的硬限制。对此nginx使用了保护机制,当经过20次hash仍然找不到可用的机器时,算法退化成轮询。

最近更新

2024年音乐备课组工作总结 32页

2024年面试银行英语问题大全及回答 20页

2024年面试自我介绍(精品14篇) 13页

XX级临床医学专业妇产科学试题 7页

2024年非诚勿扰台词 9页

河南省高等学校教师岗前培训考试暨教师资格笔.. 22页

科普知识竞赛题库及答案(各地真题) 16页

超星尔雅学习通《形势与政策(2024春)》章节.. 25页

超星尔雅学习通《形势与政策(2024春)》章节.. 25页

食品安全法管理知识考试题库(名师推荐) 27页

2023年冬至晚会活动策划方案的活动总结 冬至晚.. 7页

高中艺术班班主任总结报告五篇 15页

2024年零星维修工程合同通用11篇 32页

2024年《日常生活突发事故急救知识及处理方法.. 33页

2024年吉林省延边事业单位招聘历年高频难、易.. 165页

2024年“物业管理及公共服务”等知识考试题库.. 39页

2024年《日常生活突发事故急救知识及处理方法.. 33页

2024年临床执业医师考试真题含答案(典型题).. 29页

2024年事业单位招聘公共基础测验500题含完整答.. 166页

2024年公务员考试《数量关系题》题库及完整答.. 105页

2024年公务员考试常识判断题200道及1套参考答.. 80页

智能化系统集成专项施工方案(通过审核) 4页

黔阳县人民学习新编《黔阳县志》 1页

新版《施工现场临时用电安全技术规范》(jgj46.. 6页

人教版音乐小学五年级下册----梅花-ppt课件 18页

《一滴水经过丽江》课教案 2页

GBT 40248-2021 人员密集场所消防安全管理 25页

斗轮机的检修方法和质量验收标准规定 35页

社区缓刑人员思想汇报 5页

年龄问题 PPT课件 14页