基于Nginx服务器负载均衡技术研究与改进.docVIP

基于Nginx服务器负载均衡技术研究与改进.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Nginx服务器负载均衡技术研究与改进

基于Nginx服务器负载均衡技术研究与改进   摘要:为了减轻快速增长的网络负载压力,本文为web后端服务器集群搭建了基于Nginx的负载均衡服务器,将其作为集群的反向代理服务器,使集群具备了负载均衡的功能,对负载均衡算法进行了分析。并针对Ngmx自带负载均衡策略的缺陷提出了一种动态自适应负载均衡算法,改进型加权最小连接数算法,同时对其算法进行了设计。测试的实验结果验证了改进型加权最小连接数算法的可行性。   关键词:Nginx;服务器集群;均衡策略;动态自适应负载均衡算法   中图分类号:TP3-05 文献标识码:A DOI:10.3969/j.issn.1003-6970.2017.08.002   本文著录格式:张云,许江淳,李玉惠,等.基于服务器负载均衡技术的研究与改进[J].软件,2017,38(7):06-12   随着移动互联网的蓬勃发展,传统运营商的主要利润点如短信及话费的利润受到前所未有的冲击。为适应新时代的新形势,各大运营商均已在网络支撑方面传统的运维体系已出现在面对大量网络负荷时请求处理缓慢,服务器负载过重导致页面无响应等使用户使用体验较差等状况。因此各大运营商均将建立新一代集中运维体系作为一个重要缓解网络压力手段。   本文针对Nginx自带的算法不能考虑服务器集群中各个具体服务器的实时负载情况单纯按照初始设定来经行网络请求分配的问题,对Linux操作系统和Nginx服务器源码进行分析和研究,着重对负载均衡算法进行了优化从而达到减少服务器响应时间的同时提高服务器性能的稳定性,进而使用户获得更好的网络服务体验。   1 Nginx服务器   1.1 Nginx的模块体系   Nginx的内部结构是由核心部分和一系列功能检块组成的,这样使得每个模块的功能相对简单,便于对系统进行功能扩展,各模块之间的关系如图1所示:   标准的Nginx模块一般可分为五大类:核心模块,邮件服务模块,可选Http模块,标准Http模块和第三方模块。   http模块和mail模块分别处理http相关协议与邮件相关协议(如SMTP/IMAP/POP3等)的各类事件,同时确保这些事件能以正确的顺序来调用其它相关功能模块。   (1)事件模块(event module),用于搭建独立的事件处理框架包括独立的事件处理机制和事物响应机制,为nginx处理各种不同事物提供保障。   (2)handler模块(phase handler),用来处理具体的用户请求并同时生成待响应内容。   (3)filter模块(out putfilter),用来处理像客户端发送的响应,通过该模块可以对服务器向客户端的输出经行修改。   (4)反向代理模块(upstream),Nginx可作为反向代理服务器,用户先将请求发送到反向代理服务器,反向代理服务器再根据请求类型或路由参数将具体请求在提交给真正处理请求的后端服务器,读取响应数据并将该数据在传回客户端。   (5)负载均衡模块(load-balancer),该模块内含多种负载均衡算法,与upstream模块同时使用,当upstream配置文件中使用不同标记时调用该模块中不同算法来实现不同的负载均衡策略。   (6)第三方模块(extend module),具体使用时如Nginx自带模块并不能很好解决实际问题时,用户需可自行添加一些模块。   1.2 Nginx的服务器架构   Nginx在运行时会产生一个主进程和多个工作进程,同时也会产生一些cache相关进程。工作时,客户端发出新的网络请求时,Ngmx服务器会与后端服务器进行通信,根据具体的负载均衡策略Ngmx会将请求提交给不同的服务器,服务器接到这些请求时会进行数据的处理以及相关页面的渲染,然后将这些处理后的内容提交给Nginx服务器,Nginx服务器再将接收到的处理结果反馈给客户端。   当客户端访问的是一些常用数据时,Ngmx服务器会根据客户端发送的请求来确定客户端所需要的具体内容同时根据该请求来访问不同的缓存服务器,缓存服务器给Nginx返回具体数据后,Nginx将缓存服务返回的数据直接反馈给客户端以此来降低服务器的负荷,从而减少网络服务的响应时间。该模型中Nginx的主进程,工作进程,缓存服务器,后端服务器之间关系架构如图2所示:   1.3 Nginx的反向代理   反向代理是通过一种反向代理的手段将请求发送给反向代理服务器,反向代理服务器再将请求发送给后端服务器,同时后端服务器也将数据的处理结果发送给反向代理服务器,接收到这些数据后反向代理服务器再将数据返回给客户端。通过这种方法使服务器集群在客户端看来只需访问反向代理服务器,减轻了客户端发送请求的网络资源开销。反向代理服务器基本原理示意图3所

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档