CN113110933B - 一种具有Nginx负载均衡技术的系统 - Google Patents

一种具有Nginx负载均衡技术的系统 Download PDF

Info

Publication number
CN113110933B
CN113110933B CN202110263900.5A CN202110263900A CN113110933B CN 113110933 B CN113110933 B CN 113110933B CN 202110263900 A CN202110263900 A CN 202110263900A CN 113110933 B CN113110933 B CN 113110933B
Authority
CN
China
Prior art keywords
server
load
web server
performance
nginx
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110263900.5A
Other languages
English (en)
Other versions
CN113110933A (zh
Inventor
孟利民
童若望
应颂翔
蒋维
林梦嫚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN202110263900.5A priority Critical patent/CN113110933B/zh
Publication of CN113110933A publication Critical patent/CN113110933A/zh
Application granted granted Critical
Publication of CN113110933B publication Critical patent/CN113110933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种具有Nginx负载均衡技术的系统,包括Nginx服务器和由若干个Web服务器组成的Web服务器集群,用户向Nginx服务器发出请求后,Nginx服务器接受到来自客户端的请求后收集每个Web服务器的负载信息并将其存储,并进行信息处理,选择出最适合的Web服务器;所述的Nginx服务器接收并处理用户发起的动态请求,包括负载信息收集模块和信息处理模块。负载信息收集模块,周期性接收并收集各个Web服务器的负载信息并将其存储在数据库服务器中。所述的信息处理模块,从负载信息收集模块中获取每个web服务器的负载信息,通过预先配置的动态负载均衡算法,计算各Web服务器的权重。Web服务器集群,由多个web服务器组成,用于处理来自客户端的不同的请求。

Description

一种具有Nginx负载均衡技术的系统
技术领域
本发明涉及互联网技术领域,特别是涉及一种具有Nginx负载均衡技术的系统。
背景技术
近年来,随着Internet的飞速发展,对网络服务的需求也在增长,导致页面加载速度太慢,并且在并发数据请求量大的情况下网站没有响应,因此已经成网站管理员要解决的问题。当单个服务器负载太大时,通常的方法是升级主机。但是,单个主机的能力有限,而高性能主机则很昂贵。另外,服务器集群成本低廉,可扩展性好,已经成为解决此问题的有效方法。集群由彼此独立的一组计算机组成,这些计算机通过高速网络互连并在单个系统模式下进行管理。负载均衡系统是服务器集群的核心部分,负载均衡算法是传递用户请求的关键。
现有的负载均衡算法可以分为两类:静态和动态。静态负载均衡算法以固定的概率分配任务,这些任务不考虑服务器的状态信息;动态均衡算法根据服务器的实时负载状态信息分配任务。动态均衡算法包括最小连接法,加权最小连接法,基于位置的最小连接法。
在实际应用中,影响客户端访问频率,节点网络负载的因素很多,难以预测。如果系统长时间运行,则无法及时纠正负载,因此负载均衡的效果不好。大型企业一般通过大幅度提升服务器的硬件性能来处理Web服务器高并发这种问题。然而昂贵的硬件设备使得一些小型企业望而却步,小型企业从软件角度出发,通过优化应用系统的架构设计,采用集群系统来解决大量的Web访问请求,满足客户需求。
发明内容
为了解决以上问题,通过比较静态负载均衡和动态负载均衡算法的优缺点,本发明提供了一种具有Nginx负载均衡技术的系统,提出一种动态负载均衡算法,该算法可以实时收集服务器负载信息并动态调整权重。
本发明的目的可以通过以下技术方案实现:
一种具有Nginx负载均衡技术的系统,其特征在于:包括Nginx服务器和由若干个Web服务器组成的Web服务器集群,用户向Nginx服务器发出请求后,Nginx服务器接受到来自客户端的请求后收集每个Web服务器的负载信息并将其存储,并进行信息处理,选择出最适合的Web服务器;
所述的Nginx服务器接收并处理用户发起的动态请求,包括负载信息收集模块和信息处理模块。
所述的负载信息收集模块,周期性接收并收集各个Web服务器的负载信息并将其存储在数据库服务器中,所述的负载信息包括CPU利用率、内存利用率、网络利用率和磁盘利用率的指标。所述的数据库服务器为缓存数据库Redis。
所述的信息处理模块,从负载信息收集模块中获取每个web服务器的负载信息,通过预先配置的动态负载均衡算法,计算各Web服务器的权重。
所述的动态负载均衡算法是在Nginx加权轮询算法的研究基础上提出的一种动态自适应负载均衡算法。具体实现过程如下:
令n个指标为X1,X2,...Xn,k台Web服务器,则归一化值为Y1,Y2,...Yn,其中Xi={xi1,...,xik}代表第k台服务器第i项性能指标,由于指标的度量单位不一致,因此必须首先将数据归一化。它使用Min-max归一化将结果值映射到[0,1]。归一化计算公式如下,其中Yij是服务器j的性能指标i的归一化值:
服务器j的第i项性能指标的比例为每个性能指标的信息熵为E1,E2,...En,/>各个性能指标的权重为/>
将Cj、Nj、Dj、Mj定义为服务器节点j的剩余CPU性能、网络带宽剩余性能、磁盘剩余性能和内存剩余性能,TC、TN、TD、TM为所有服务器节点的剩余CPU性能,网络带宽性能,磁盘性能和内存性能。对于任何服务器节点j,其初始权重为 计算公式如下,参数Arg是为了对上述计算所得的结果取整:
当web服务器集群处理大量的HTTP请求时,由于请求中分配的请求量和需要处理的数据量很大,一些节点会处于高负载状态,一些节点会处于低负载状态,这使得web服务器集群的性能不能得到充分利用。有必要实时监控web服务器节点的负载,并调整节点权重。但是,计算节点权重往往会消耗太多的计算机资源,因此使用下面的公式来计算当前服务器节点的负载。
Uj=Wcpu*Cj+Wnet*Nj+Wio*Dj+Wmem*Mj (3)
Uj是当前web服务器节点的总体剩余性能。通过设置两个阈值H和L,来判断web服务器负载情况。当Uj≤H时,表示当前web服务器j处于高负载状态。当web服务器j的Uj≥L时,确定当前服务器节点j处于低负载状态。
Fj为当前web服务器节点在web服务器的所有节点中的剩余性能比率。服务器节点权重可以调整如下:
通过权值调整,改善了服务器节点负载不平衡的情况。但是,加权的不平衡通常是由短时间内的高并发访问引起的。因此,当不存在高负载节点时,服务器节点权重将逐渐调整为初始权重。
所述的Web服务器集群,由多个web服务器组成,用于处理来自客户端的不同的请求。
本发明的有益效果:
(1)加入Redis数据库作为负载信息的缓存,将缓存记录放到内存中,加快了查询速度。
(2)新的动态负载均衡算法获取服务器CPU,磁盘IO,网络带宽和内存,计算权重,选出相对空闲的服务器进行下一步判断。
(3)所述的动态负载均衡算法是一种基于Nginx负载均衡的动态加权循环算法。通过比较静态负载均衡和动态负载均衡算法,对基础的加权循环算法进行改进,使得负载均衡效果更好。
附图说明
图1是由本发明专利的Nginx服务器以及Web服务器集群组成的系统框架图。
图2是Nginx服务器处理客户端动态请求流程图。
图3是动态负载均衡算法流程图。
具体实施方式
下面结合附图1~图3对本发明作进一步描述。
一种具有Nginx负载均衡技术的系统,包括Nginx服务器和Web服务器集群;
所述的Nginx服务器接收并处理用户发起的动态请求,包括负载信息收集模块和信息处理模块。
所述的负载信息收集模块,周期性接收并收集各个Web服务器的负载信息并将其存储在数据库服务器中,所述的负载信息包括CPU利用率、内存利用率、网络利用率和磁盘利用率的指标。所述的数据库服务器为缓存数据库Redis。
所述的信息处理模块,从负载信息收集模块中获取每个web服务器的负载信息,通过预先配置的动态负载均衡算法,计算各Web服务器的权重。
所述的Web服务器集群,由多个web服务器组成,用于处理来自客户端的不同的请求。
本发明实现的动态负载均衡算法,步骤如下:
S1、当Nginx收到客户端的动态请求时,会根据当前各个业务服务器的权重进行任务分配,将请求发送给权重最大即处理能力最强的业务服务器节点,以保证请求能够有效地得到处理。
S2、Nginx服务器启动后,Nginx中的负载信息收集模块会周期性读取各个业务服务器的负载信息,并将数据存储在数据库服务器中,由信息处理模块对获取到的负载信息进行权重计算,并将处理的结果发送给Nginx服务器。
S3、Nginx服务器收到信息处理模块的反馈信息后,会根据预先设置的动态负载均衡算法做出相应的处理,若反馈信息中要求更新业务服务器节点的当前权重,则对该服务器节点的权重进行重新赋值。
所述步骤S1中,Nginx处理客户端请求的流程如图2所示。当客户端向服务器发起动态请求后,Nginx服务器首先比较该服务器集群中各个节点的权重,将请求发送给权重最大的服务器节点。若请求发送给服务器节点成功,则返回客户端所需的结果;若请求发送给服务器节点失败,且重复发送失败的次数大于20次,则Nginx服务器不再向该服务器发送请求。
所述的步骤S3中,所述的动态负载均衡算法如图3所示。新的动态负载均衡算法是在原有Nginx加权轮询算法的基础上,根据各个业务服务器节点的运行状态,对其负载均衡的权重进行重新赋值,防止各节点出现过载问题。同时,为避免出现频繁更新权重而导致的资源浪费问题,此负载均衡算法中通过计算服务器节点的负载,将计算所得的负载与阈值进行比较,判断负载情况。当业务服务器节点的处于低负载或高负载情况下,Nginx服务器才会对该节点的权值进行更新。
本发明的具体实施步骤为:
(1)初始化Nginx服务器,并为各业务服务器节点赋初始权值;
(2)当Nginx服务器收到客户端的请求后,将请求发送给权值最大的业务服务器;
(3)Nginx中的负载信息收集模块会周期性读取各个业务Web服务器的负载信息,并将数据存储在数据库服务器中,由信息处理模块对获取到的负载信息进行权重计算,并将处理的结果发送给Nginx服务器。
(4)Nginx收到反馈信息后,对各业务Web服务器的权值做出相应的处理。

Claims (1)

1.一种具有Nginx负载均衡技术的系统,其特征在于:包括Nginx服务器和由若干个Web服务器组成的Web服务器集群,用户向Nginx服务器发出请求后,Nginx服务器接受到来自客户端的请求后收集每个Web服务器的负载信息并将其存储,并进行信息处理,选择出最适合的Web服务器;
所述的Nginx服务器接收并处理用户发起的动态请求,包括负载信息收集模块和信息处理模块;
所述的负载信息收集模块,周期性接收并收集各个Web服务器的负载信息并将其存储在数据库服务器中,所述的负载信息包括CPU利用率、内存利用率、网络利用率和磁盘利用率的指标;所述的数据库服务器为缓存数据库Redis;
所述的信息处理模块,从负载信息收集模块中获取每个web服务器的负载信息,通过预先配置的动态负载均衡算法,计算各Web服务器的权重;
所述的动态负载均衡算法是在Nginx加权轮询算法的研究基础上提出的一种动态自适应负载均衡算法;具体实现过程如下:
令n个指标为X1,X2,...Xn,k台Web服务器,则归一化值为Y1,Y2,...Yn,其中Xi={xi1,...,xik}代表第k台服务器第i项性能指标,由于指标的度量单位不一致,因此必须首先将数据归一化;它使用Min-max归一化将结果值映射到[0,1];归一化计算公式如下,其中Yij是服务器j的性能指标i的归一化值:
服务器j的第i项性能指标的比例为每个性能指标的信息熵为E1,E2,...En,/>各个性能指标的权重为/>
将Cj、Nj、Dj、Mj定义为服务器节点j的剩余CPU性能、网络带宽剩余性能、磁盘剩余性能和内存剩余性能,TC、TN、TD、TM为所有服务器节点的剩余CPU性能,网络带宽性能,磁盘性能和内存性能;对于任何服务器节点j,其初始权重为 计算公式如下,参数Arg是为了对上述计算所得的结果取整:
使用下面的公式来计算当前服务器节点的负载;
Uj= Wcpu*Cj+ Wnet*Nj+ Wio*Dj+Wmem*Mj (3)
Uj是当前web服务器节点的总体剩余性能;通过设置两个阈值H和L,来判断web服务器负载情况;当Uj≤H时,表示当前web服务器j处于高负载状态;当web服务器j的Uj≥L时,确定当前服务器节点j处于低负载状态;
Fj为当前web服务器节点在web服务器的所有节点中的剩余性能比率;服务器节点权重可以调整如下:
通过权值调整,改善了服务器节点负载不平衡的情况;当不存在高负载节点时,服务器节点权重将逐渐调整为初始权重;
所述的Web服务器集群,由多个web服务器组成,用于处理来自客户端的不同的请求。
CN202110263900.5A 2021-03-11 2021-03-11 一种具有Nginx负载均衡技术的系统 Active CN113110933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110263900.5A CN113110933B (zh) 2021-03-11 2021-03-11 一种具有Nginx负载均衡技术的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110263900.5A CN113110933B (zh) 2021-03-11 2021-03-11 一种具有Nginx负载均衡技术的系统

Publications (2)

Publication Number Publication Date
CN113110933A CN113110933A (zh) 2021-07-13
CN113110933B true CN113110933B (zh) 2024-04-09

Family

ID=76711278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110263900.5A Active CN113110933B (zh) 2021-03-11 2021-03-11 一种具有Nginx负载均衡技术的系统

Country Status (1)

Country Link
CN (1) CN113110933B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114048020B (zh) * 2021-09-22 2022-04-26 北京中科金马科技股份有限公司 一种基于大数据客房管理系统
CN114173205A (zh) * 2021-12-06 2022-03-11 倍智智能数据运营有限公司 一种在小程序上播放rtsp音视频流的方法
CN114726864A (zh) * 2022-04-08 2022-07-08 傲普(上海)新能源有限公司 一种Nginx负载均衡方法、装置、介质及设备
CN115002125A (zh) * 2022-04-24 2022-09-02 浙江工业大学 一种具有Web负载均衡技术的系统
CN115242797B (zh) * 2022-06-17 2023-10-27 西北大学 一种面向微服务架构的客户端负载均衡方法及系统
CN115686840A (zh) * 2022-10-24 2023-02-03 阿里巴巴(中国)有限公司 请求处理方法以及系统
CN116893900A (zh) * 2023-07-19 2023-10-17 合芯科技有限公司 集群计算压力负载均衡方法、系统、设备及ic设计平台

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110933139A (zh) * 2019-11-05 2020-03-27 浙江工业大学 一种解决Web服务器高并发的系统及方法
CN111277648A (zh) * 2020-01-19 2020-06-12 北京工业大学 基于Nginx的动态权重负载均衡系统和方法
CN111324462A (zh) * 2020-02-20 2020-06-23 杭州梦视网络科技有限公司 一种具有Web负载均衡技术的系统及方法
CN112019620A (zh) * 2020-08-28 2020-12-01 中南大学 基于Nginx动态加权的Web集群负载均衡算法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110933139A (zh) * 2019-11-05 2020-03-27 浙江工业大学 一种解决Web服务器高并发的系统及方法
CN111277648A (zh) * 2020-01-19 2020-06-12 北京工业大学 基于Nginx的动态权重负载均衡系统和方法
CN111324462A (zh) * 2020-02-20 2020-06-23 杭州梦视网络科技有限公司 一种具有Web负载均衡技术的系统及方法
CN112019620A (zh) * 2020-08-28 2020-12-01 中南大学 基于Nginx动态加权的Web集群负载均衡算法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Nginx的服务器集群负载均衡策略研究与优化;吴宝花;《中国优秀硕士学位论文全文数据库 信息科技辑》;全文 *

Also Published As

Publication number Publication date
CN113110933A (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN113110933B (zh) 一种具有Nginx负载均衡技术的系统
CN107196865B (zh) 一种负载感知的自适应阈值过载迁移方法
CN110933139A (zh) 一种解决Web服务器高并发的系统及方法
Colajanni et al. Scheduling algorithms for distributed web servers
US7437460B2 (en) Service placement for enforcing performance and availability levels in a multi-node system
US20070043970A1 (en) Approach for managing interrupt load distribution
CN108416465B (zh) 一种移动云环境下的工作流优化方法
CN108900626B (zh) 一种云环境下数据存储方法、装置及系统
CN111324462A (zh) 一种具有Web负载均衡技术的系统及方法
Ma et al. Real-time virtual machine scheduling in industry IoT network: A reinforcement learning method
CN113778683B (zh) 一种基于神经网络的Handle标识体系解析负载均衡方法
CN112835698A (zh) 一种基于异构集群的请求分类处理的动态负载均衡方法
CN117155942A (zh) 一种微服务动态自适应客户端负载均衡方法及系统
Qin et al. Research on nginx dynamic load balancing Algorithm
CN114945024B (zh) 基于长短期记忆网络的服务器负载均衡优化方法
Qin et al. Dynamic load balancing for I/O-and memory-intensive workload in clusters using a feedback control mechanism
CN113377544A (zh) 一种基于负荷数据动态更新率的web集群负载均衡方法
CN113312151A (zh) 一种IPSecVPN集群的负载均衡方法
CN113377866A (zh) 一种虚拟化数据库代理服务的负载均衡方法及装置
Zhu et al. Load balancing algorithm for web server based on weighted minimal connections
CN114356585A (zh) 一种移动边缘计算卸载的优化方法、装置及计算机设备
CN113268339A (zh) 基于差分进化算法的动态负载均衡方法及系统
Xu et al. A Load-balancing method for high performance cluster computing system
CN112148474B (zh) 面向负载均衡的龙芯大数据一体机自适应任务分割方法及系统
Yang et al. Load balancing scheduling algorithm for storage system based on state acquisition and dynamic feedback

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant