CN114726864A - 一种Nginx负载均衡方法、装置、介质及设备 - Google Patents

一种Nginx负载均衡方法、装置、介质及设备 Download PDF

Info

Publication number
CN114726864A
CN114726864A CN202210367441.XA CN202210367441A CN114726864A CN 114726864 A CN114726864 A CN 114726864A CN 202210367441 A CN202210367441 A CN 202210367441A CN 114726864 A CN114726864 A CN 114726864A
Authority
CN
China
Prior art keywords
server
middleware database
user
access request
session information
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.)
Pending
Application number
CN202210367441.XA
Other languages
English (en)
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.)
Aopu Shanghai New Energy Co Ltd
Original Assignee
Aopu Shanghai New Energy Co Ltd
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 Aopu Shanghai New Energy Co Ltd filed Critical Aopu Shanghai New Energy Co Ltd
Priority to CN202210367441.XA priority Critical patent/CN114726864A/zh
Publication of CN114726864A publication Critical patent/CN114726864A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1055Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving connection limits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种Nginx负载均衡方法,通过将各个应用服务器的权重值与用户会话信息存储于中间件数据库;在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求,对负载均衡和改善Web服务器的高并发性能起到很大的积极作用,并解决了session不一致性的问题。

Description

一种Nginx负载均衡方法、装置、介质及设备
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种Nginx负载均衡方法、装置、介质及设备。
背景技术
随着互联网的快速发展,人们对网站的访问量也随着日益增长,越来越多的Web服务器经常处于高并发访问状态,导致服务器性能快速下降,甚至系统崩溃的严重后果。
Nginx安装配置是一款高性能的Web和反向代理服务器,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。但是在现有技术中,在硬件资源允许的前提下,通过软件的配置支持高并发访问成为了当前亟待解决的重要问题,尤其在接受大量用户访问时、会存在造成session不一致性、导致数据的丢失和重复等问题。
发明内容
本发明实施例提供一种Nginx负载均衡方法、装置、介质及设备,通过Nginx负载均衡搭建Web服务器,并对Nginx的连接数和客户访问限制方面进行优化,对负载均衡和改善Web服务器的高并发性能起到很大的积极作用。
第一方面,本发明实施例提供了一种Nginx负载均衡方法,该方法包括:
将各个应用服务器的权重值与用户会话信息存储于中间件数据库;
在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求。
可选的,由所述中间件数据库确定目标服务器并分发访问请求,包括:
根据所述用户会话信息,确定与所述目标用户相匹配的候选服务器;
根据所述候选服务器设置的权重值,确定目标服务器并分发访问请求。
可选的,在将各个应用服务器的权重值与用户会话信息存储于中间件数据库之前,还包括:
根据预设条件设置各个应用服务器的权重值,其中,所述预设条件包括以下至少之一:
所述应用服务器的负载状态、历史宕机数据、请求失败次数上限,以及暂停访问时间。
可选的,所述用户会话信息包括:所有用户客户端请求的IP地址。
可选的,所述中间件数据库为redis。
第二方面,本发明实施例提供了一种Nginx负载均衡装置,该装置包括:
存储模块,用于将各个应用服务器的权重值与用户会话信息存储于中间件数据库;
分发模块,用于在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求。
可选的,所述分发模块具体用于:
根据所述用户会话信息,确定与所述目标用户相匹配的候选服务器;
根据所述候选服务器设置的权重值,确定目标服务器并分发访问请求。
可选的,还包括:
设置模块,用于在将各个应用服务器的权重值与用户会话信息存储于中间件数据库之前,根据预设条件设置各个应用服务器的权重值,其中,所述预设条件包括以下至少之一:
所述应用服务器的负载状态、历史宕机数据、请求失败次数上限,以及暂停访问时间。
可选的,所述用户会话信息包括:所有用户客户端请求的IP地址。
可选的,所述中间件数据库为redis。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的Nginx负载均衡方法。
第四方面,本发明实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的Nginx负载均衡方法。
本发明实施例通过将各个应用服务器的权重值与用户会话信息存储于中间件数据库;在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求,对负载均衡和改善Web服务器的高并发性能起到很大的积极作用,并解决了session不一致性的问题。
附图说明
图1是本发明实施例一提供的一种Nginx负载均衡方法的流程图;
图2是本发明实施例二提供的一种Nginx负载均衡方法的示意图;
图3是本发明实施例三提供的一种Nginx负载均衡装置的结构示意图;
图4是本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
首先,本方案的实现,可以是基于如下前提:
网络模块区分服务端和客户端。
将应用程序区分为服务端和客户端,但是和大部分需要区分服务端和客户端的应用程序不同的是,因为考虑到成本控制、程序启动自由、便捷性等原因,本产品不希望单独设立一台计算机作为服务器。
因此,程序会在启动后,通过网络模块首先解析配置文件中提前记录好的信息来判断自身是否是服务端,如果是服务端,那自身既为服务端,又为客户端,其他计算机则为客户端。
确定网络传输通讯协议。
根据本程序所处的网络环境,确定UDP作为底层网络传输通讯协议,但考虑到UDP协议是不可靠协议,即会出现网络数据丢包、不保证前后顺序等问题,因此选择使用UDP+KCP的方案实现可靠UDP传输。另外,在用户登录准备阶段时,使用TCP作为网络传输通讯协议,保证用户登录的可靠性。
规定同步逻辑中的参数设置。
规定在同步逻辑中需要用到的参数,以便在实现同步算法流程中,便捷地运用这些提前设置好的参数,具体有:服务端IP地址、服务端网络端口、本地客户端IP地址、服务端帧间隔、心跳包帧间隔、服务端判断客户端超时掉线的时间、客户端判断服务端超时掉线的时间、客户端帧率倍数。
规定同步消息数据协议。
首先,需要规定消息类型,具体有:同步准备、同步开始、追踪数据、同步退出、心跳包、自定义消息。然后,需要规定消息数据,具体有:消息类型、消息来源的玩家ID、消息目标的玩家ID、追踪数据、Ping值时间戳、自定义消息。最后,需要规定客户端发送给服务端的数据的上行协议和服务端发送给客户端的数据下行协议,上行协议具体有:会话ID、消息列表,下行协议具体有帧ID、消息列表。
实施例一
图1为本发明实施例一提供的一种Nginx负载均衡方法的流程图,该方法可以由本发明实施例提供的Nginx负载均衡装置来执行,该装置可采用软件和/或硬件的方式实现。该方法具体包括:
S110、将各个应用服务器的权重值与用户会话信息存储于中间件数据库。
其中,由于各个应用服务器的处理能力不同,因此将各个应用服务器处理能力量化为权重值,存储于中间件数据库。用户会话信息Session用于存储特定用户会话所需的属性及配置信息。例如,用户会话信息包括:所有用户客户端请求的IP地址。中间件数据库为Nginx以外的一个中间介质,可以是文件夹、网络、服务器,例如redis。
具体的,客户端服务发出请求后,nginx服务器接受到来自客户端的请求后、通过nginx反向代理做处理并返回、nginx配置每个Web服务器的负载信息一致并将其代理,并进行信息处理,依次选Web服务器。
具体的,HttpSession是通过java容器进行创建和管理的,在单机环境中。通过Http请求创建的Session信息是存储在Web服务器内存中,当用户通过浏览器访问应用服务器,session信息中保存了用户的登录信息,并且session信息没有过期,那么用户就一直处于登录状态,可以做一些登录状态的业务操作。但是现在很多单体服务都采用分布式集群的方式进行部署,一个Web应用可能部署在几台不同的服务器上,通过Nginx等进行负载均衡,此时来自同一用户的http请求将有可能被分发到不同的web站点中去,因此本实施例通过对Nginx进行配置,能够保证不同的web站点可以共享同一份session数据。
S120、在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求。
其中,目标用户指的是有访问请求的当前用户,目标服务器指的是Nginx通过筛选分发给该目标用户的应用服务器。
可选的,由所述中间件数据库确定目标服务器并分发访问请求,包括:根据所述用户会话信息,确定与所述目标用户相匹配的候选服务器;根据所述候选服务器设置的权重值,确定目标服务器并分发访问请求。
其中,候选服务器指的是均含有目标用户session信息的服务器。本实施例在用户发出访问请求后,先访问过滤器即中间件数据库redis,通过redis中存储的数据信息确定与目标用户相对应的具有该用户session信息的候选服务器,再在候选服务器中选择权重值最高的服务器进行访问。
可选的,在将各个应用服务器的权重值与用户会话信息存储于中间件数据库之前,还包括:根据预设条件设置各个应用服务器的权重值,其中,所述预设条件包括以下至少之一:
所述应用服务器的负载状态、历史宕机数据、请求失败次数上限,以及暂停访问时间。
其中,应用服务器的负载状态,也即down设置表示负载过重或者不参与负载。在Upstream配置为:
server 172.16.XXX.XX:8077down;
历史宕机数据,也即backup设置其它服务器时或down时才会请求backup服务器:在Upstream配置为:
server 172.16.X.XX:8077backup;
请求失败次数上限,也即max_fails设置失败超过指定次数会暂停或请求转往其它服务器。暂停访问时间,也即fail_timeout设置失败超过指定次数后,暂停访问的时间,在Upstream配置为:
server 172.16.X.XX:8066max_fails=3fail_timeout=30s。
本实施例主要阐述了单体项目在服务器用nginx配置集群,配置集群单体项目、它可以接受大量用户访问、但是这样会照成session不一致性、导致数据的丢失和重复,对负载均衡也没处理,无法控制机器访问频率、比如不同的服务器可能机器的配置和当前系统的负载并不相同、负载权限也会随之不同。如果无法控制session不一致性、负载均衡会照成不必要的损失以及大量数据都走同一台服务器、使Web服务器崩溃、或者数据丢失、重复的情况等情况。
本实施例通过将各个应用服务器的权重值与用户会话信息存储于中间件数据库;在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求,对负载均衡和改善Web服务器的高并发性能起到很大的积极作用,并解决了session不一致性的问题。
实施例二
图2为本发明实施例二提供的一种Nginx负载均衡方法的示意图,对实现Nginx负载均衡解决session一致性问题的配置进行举例说明。
在现有技术中,Nginx负载均衡实现,Nginx的upstream目前支持以下几种方式的分配:
1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight指定轮询机率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4、fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
本实施例通过的加权轮询法(附加权重值)用于下方负载均衡、不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同,给配置高的机器配置更高的权重,让其处理更多的请求、性能、配置一般的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地将请求顺序且按照权重分配到后端weight的值越大分配到的访问概率越高。
Figure BDA0003586468070000091
Figure BDA0003586468070000101
Figure BDA0003586468070000111
当有请求到上方www.test.com/www.test0.com时请求会被分发到对应的upstream设置的服务器列表上。test0并没有设置负载均衡每一次请求分发的服务器都是随机的,就是第一种轮询情况列举的。而test刚是根据来访问ip的hashid来分发到指定的服务器,也就是说该IP的请求都是转到这个指定的服务器上。
它在里面配置了根据服务器的本身的性能差别及职能,可以设置不同的参数控制:
1、down设置表示负载过重或者不参与负载。
2、weight设置权重过大代表承担的负载就越大。
3、backup设置其它服务器时或down时才会请求backup服务器。
4、max_fails设置失败超过指定次数会暂停或请求转往其它服务器。
5、fail_timeout设置失败超过指定次数后暂停时间。
6、启动/etc/init.d/nginx start服务,修改nginx.cof配置文件。
7、VUE前端页面router中index代码配置mode:”history”或mode:“hash”。
8、后端java配置UrlBasedCorsConfigurationSource的方法。
9、服务器修改nginx配置文件,linux虚拟机服务配置upstream服务,并配置server及相应开放的服务接口、修改nginx配置文件,nginx服务配置针对后端接口的location反向代理、upstream tomcat_server配置负载均衡加全加权轮询法(weight)。
10、接口路径配置proxy_pass属性到相应的后端环境,执行命令/etc/init.d/nginx restart,nginx重新加载配置文件,使之生效。
本实施例实现了负载均衡、让一台Nginx负载权重的方式配置、性能好的机器。现在服务器session不一致性问题,通过客户端请求的ip地址统一存入redis,让redis进行缓存、请求的时候进行java调用redis中的ip进行分配运行:
upstream tomcat_server{ip_hash;server 192.168.XX.XX:8080weight=1;server 192.168.XX.XX:8080weight=1;}
在高并发、多用户访问的情况下,所有的请求直接访问同一个Web系统,Web系统服务器就会导致崩溃。本实施例使用Nginx做一个负载均衡操作,让请求先访问同一个系统不同的服务器,而不是全部客户端统一访问一个系统导致系统在高并发情况下崩溃,所以在高并发、用户量大情况下就特别适合将Web系统分为多个服务器并配置负载均衡加权重。这样后面的请求就会随着配置的权重进行加载,使得Web系统能够迅速响应。
而解决session一致性问题的相关配置如下:
1、在springboot中使用spring-session引入下面几个配置:
spring-boot-starter-data-redis、
spring-boot-starter-web、
spring-session-data-redis
2、在application配置session和redis配置:
server.port=8080
spring.redis.host=localhost
spring.redis.port=6379
#spring session使用存储类型,默认就是redis所以可以省略
spring.session.store-type=redis
3、创建Controller获取session信息、代码如下仅供参考
String sessionId=request.getSession().getId();
int serverPort=request.getServerPort();
4、之后在配置nginx然后在启动redis即可。
本实施例通过将http请求经过Filter链,根据配置信息过滤器将创建session的权利由tomcat交给了spring-session中的SessionRepository,通过spring-session创建会话,Session的内容统一存储在一个缓存Redis中。
本实施例基于Nginx技术实现系统负载均衡的权重分配和session不一致性问题,通过权重配置方法,解决了系统服务器、可能因机器的配置和其它机器配置不同、而产生数据同等发送每台机器、造成好的机器容量资源过剩的情况。通过权重解决机器指定轮询机率,session不一致性所有服务器ip都存入了redis,请求的时候进行java调用redis中的ip进行分配运行、redis根据客户端不同的ip进行分配,且具有广泛的支持度,对于高并发,多用户请求,可以极大的降低用户访问系统造成的压力,在保证数据准确性的同时,提高了系统运行的稳定性。
实施例三
图3是本发明实施例提供的一种电子设备中Nginx负载均衡装置的结构示意图,该装置具体包括:
存储模块310,用于将各个应用服务器的权重值与用户会话信息存储于中间件数据库;
分发模块320,用于在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求。
可选的,所述分发模块320具体用于:
根据所述用户会话信息,确定与所述目标用户相匹配的候选服务器;
根据所述候选服务器设置的权重值,确定目标服务器并分发访问请求。
可选的,还包括:
设置模块,用于在将各个应用服务器的权重值与用户会话信息存储于中间件数据库之前,根据预设条件设置各个应用服务器的权重值,其中,所述预设条件包括以下至少之一:
所述应用服务器的负载状态、历史宕机数据、请求失败次数上限,以及暂停访问时间。
可选的,所述用户会话信息包括:所有用户客户端请求的IP地址。
可选的,所述中间件数据库为redis。
实施例四
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行:
将各个应用服务器的权重值与用户会话信息存储于中间件数据库;
在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的Nginx负载均衡操作,还可以执行本申请任意实施例所提供的Nginx负载均衡方法中的相关操作。
实施例五
本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的Nginx负载均衡装置。图4是本申请实施例五提供的一种电子设备的结构示意图。如图4所示,本实施例提供了一种电子设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器420运行,使得所述一个或多个处理器420实现:
将各个应用服务器的权重值与用户会话信息存储于中间件数据库;
在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求。
如图4所示,该电子设备400包括处理器420、存储装置410、输入装置430和输出装置440;电子设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;电子设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。
存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可运行程序以及模块单元,如本申请实施例中的Nginx负载均衡方法对应的程序指令。
存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏、扬声器等设备。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种Nginx负载均衡方法,其特征在于,包括:
将各个应用服务器的权重值与用户会话信息存储于中间件数据库;
在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求。
2.根据权利要求1所述的方法,其特征在于,由所述中间件数据库确定目标服务器并分发访问请求,包括:
根据所述用户会话信息,确定与所述目标用户相匹配的候选服务器;
根据所述候选服务器设置的权重值,确定目标服务器并分发访问请求。
3.根据权利要求2所述的方法,其特征在于,在将各个应用服务器的权重值与用户会话信息存储于中间件数据库之前,还包括:
根据预设条件设置各个应用服务器的权重值,其中,所述预设条件包括以下至少之一:
所述应用服务器的负载状态、历史宕机数据、请求失败次数上限,以及暂停访问时间。
4.根据权利要求3所述的方法,其中,所述用户会话信息包括:所有用户客户端请求的IP地址。
5.根据权利要求4所述的方法,其中,所述中间件数据库为redis。
6.一种Nginx负载均衡装置,其特征在于,包括:
存储模块,用于将各个应用服务器的权重值与用户会话信息存储于中间件数据库;
分发模块,用于在目标用户具有访问请求时,访问所述中间件数据库,由所述中间件数据库确定目标服务器并分发访问请求。
7.根据权利要求6所述的装置,其特征在于,所述分发模块具体用于:
根据所述用户会话信息,确定与所述目标用户相匹配的候选服务器;
根据所述候选服务器设置的权重值,确定目标服务器并分发访问请求。
8.根据权利要求7所述的装置,其特征在于,还包括:
设置模块,用于在将各个应用服务器的权重值与用户会话信息存储于中间件数据库之前,根据预设条件设置各个应用服务器的权重值,其中,所述预设条件包括以下至少之一:
所述应用服务器的负载状态、历史宕机数据、请求失败次数上限,以及暂停访问时间。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
10.一种移动设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的方法。
CN202210367441.XA 2022-04-08 2022-04-08 一种Nginx负载均衡方法、装置、介质及设备 Pending CN114726864A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210367441.XA CN114726864A (zh) 2022-04-08 2022-04-08 一种Nginx负载均衡方法、装置、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210367441.XA CN114726864A (zh) 2022-04-08 2022-04-08 一种Nginx负载均衡方法、装置、介质及设备

Publications (1)

Publication Number Publication Date
CN114726864A true CN114726864A (zh) 2022-07-08

Family

ID=82241358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210367441.XA Pending CN114726864A (zh) 2022-04-08 2022-04-08 一种Nginx负载均衡方法、装置、介质及设备

Country Status (1)

Country Link
CN (1) CN114726864A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618508A (zh) * 2015-02-26 2015-05-13 浪潮电子信息产业股份有限公司 一种基于Nginx、Memcached、Tomcat负载均衡网状架构
CN109274751A (zh) * 2018-10-08 2019-01-25 中邮科通信技术股份有限公司 一种重写servlet request的会话共享方法
CN113110933A (zh) * 2021-03-11 2021-07-13 浙江工业大学 一种具有Nginx负载均衡技术的系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618508A (zh) * 2015-02-26 2015-05-13 浪潮电子信息产业股份有限公司 一种基于Nginx、Memcached、Tomcat负载均衡网状架构
CN109274751A (zh) * 2018-10-08 2019-01-25 中邮科通信技术股份有限公司 一种重写servlet request的会话共享方法
CN113110933A (zh) * 2021-03-11 2021-07-13 浙江工业大学 一种具有Nginx负载均衡技术的系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
尼恩: "《Spring Cloud、Nginx高并发核心编程》", 北京:机械工业出版社, pages: 258 - 261 *

Similar Documents

Publication Publication Date Title
CN110198307B (zh) 一种移动边缘计算节点的选择方法、装置及系统
US10447775B2 (en) System and method to balance servers based on server load status
US9450912B2 (en) Method and device for accessing application server
CN106302434B (zh) 服务器适配方法、装置和系统
EP2761451B1 (en) System and method for providing flexibility in load balancing and data compression in a traffic director environment
US20150213134A1 (en) Data query method and system and storage medium
Bianchini et al. Analytical and experimental evaluation of cluster-based network servers
US10230811B2 (en) System and method for providing an adjunct device in a content distribution network
AU2005284983A1 (en) System and method for connection optimization
US11489686B2 (en) Virtual meetings in ad-hoc networks
US11159625B1 (en) Efficiently distributing connections to service instances that stream multi-tenant data
US11159642B2 (en) Site and page specific resource prioritization
WO2019052058A1 (zh) 一种域名重定向方法和系统
WO2020123294A1 (en) Predictive microservice systems and methods
US9755897B1 (en) Enhanced throttle management system
US11128733B2 (en) Server-side resource prioritization
CN114726864A (zh) 一种Nginx负载均衡方法、装置、介质及设备
CN110570859B (zh) 智能音箱控制方法、装置、系统及存储介质
US20020163746A1 (en) Server accelerator switch
CN114785753B (zh) 一种容器云平台的域名解析方法、系统、介质和电子设备
CN116668372B (zh) 一种流量控制方法和相关装置
CN114584518A (zh) 基于资源池的websocket负载均衡方法及系统
CN117834703A (zh) 一种数据传输的调度方法、相关系统及存储介质和服务器
CN114924846A (zh) 基于云操作系统的虚拟机迁移方法
CN109977332A (zh) 移动端的图片访问方法、装置及存储介质

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