本发明涉及通信技术领域,尤其是涉及一种nginx负载均衡方法、装置、设备及可读存储介质。
背景技术:
nginx:是一款自由的、开源的、高性能的http服务器和反向代理服务器,同时也是一个imap、pop3、smtp代理服务器。
随着网络技术的不断发展,网络用户数量急剧增加,网络访问的需求也日益增加,对网站服务器造成了很大的压力。并发业务数量的直线增长,是对服务器工作性能的严峻考验。现有技术中,一般采用多服务器集群技术来解决上述问题,而负载均衡是集群技术的核心问题。nginx可以作为反向代理服务器进行负载均衡的实现。反向代理是指以代理服务器接收internet上的连接请求,按照一定的规则方法将请求分发给内部网络上的服务器集群,并将从服务器集群上得到的结果返回给internet上发出连接请求的客户端。因此,研究一种nginx负载均衡方法是至关重要的,对于服务器处理高并发请求具有积极的意义。
技术实现要素:
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供一种nginx负载均衡方法,从而减轻单个服务器的压力。
本发明所采用的技术方案是:一种nginx负载均衡方法,包括以下步骤:
给每个后端服务器设置权重值;
接收客户端发起的访问请求;
根据所述权重值向所述每个后端服务器分发访问请求。
进一步地,所述步骤给每个后端服务器设置权重值具体包括:
根据所述每个后端服务器的硬件配置来设置其权重值,硬件配置越高,则设置的权重值越大,硬件配置越低,则设置的权重值越小。
进一步地,一种nginx负载均衡方法还包括步骤:
根据发起访问请求的客户端ip的hash值向所述每个后端服务器分发访问请求。
进一步地,一种nginx负载均衡方法还包括步骤:
根据所述每个后端服务器对访问请求的响应时间向所述每个后端服务器分发访问请求。
进一步地,一种nginx负载均衡方法还包括步骤:
根据所述访问请求的url的hash值向所述每个后端服务器分发访问请求。
一种nginx负载均衡装置,包括:
设置单元,用于给每个后端服务器设置权重值;
接收单元,用于接收客户端发起的访问请求;
分发单元,用于根据所述权重值向所述每个后端服务器分发访问请求。
一种nginx负载均衡设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的一种nginx负载均衡方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述的一种nginx负载均衡方法。
本发明的有益效果是:
本发明通过给每个后端服务器设置权重值,当接收客户端发起的大量的并发访问请求时,根据权重值向每个后端服务器分发访问请求,有效地避免了单个服务器数据流过大的问题,减轻了单个服务器的压力,同时能够使各个后端服务器的资源得到均衡的使用。
附图说明
图1是本发明中一种nginx负载均衡方法的一具体实施例的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明提供了一种nginx负载均衡方法,如图1所示,包括以下步骤:
给每个后端服务器设置权重值;
接收客户端发起的访问请求;
根据权重值向每个后端服务器分发访问请求。
作为该技术方案的改进,步骤给每个后端服务器设置权重值具体包括:
根据每个后端服务器的硬件配置来设置其权重值,硬件配置越高,则设置的权重值越大,硬件配置越低,则设置的权重值越小。配置如下:
其中,weight为权重值,则nginx向192.168.1.11服务器分发的访问请求是192.168.1.10服务器的两倍。
当然,也可以根据后端服务器的其他指标来设置其权重值。
若某一台后端服务器宕机,nginx会自动将该后端服务器剔除出队列,不再向其分发访问请求。
作为该技术方案的改进,nginx负载均衡方法还包括步骤:
根据发起访问请求的客户端ip的hash值向每个后端服务器分发访问请求。配置如下:
这种方式下,一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session(会话控制)共享的问题。
作为该技术方案的改进,nginx负载均衡方法还包括步骤:
根据每个后端服务器对访问请求的响应时间向每个后端服务器分发访问请求。
每个后端服务器的性能各不相同,对访问请求的响应时间也有长有短。一般情况下,向响应时间短、处理效率高的服务器优先分发访问请求。由于nginx默认不支持这种算法,如果要使用这种调度算法,需安装upstream_fair模块。配置如下:
作为该技术方案的改进,nginx负载均衡方法还包括步骤:
根据访问请求的url的hash值向每个后端服务器分发访问请求。
每个访问请求的url会指向某个固定的后端服务器,后端服务器为缓存服务器时比较有效,可以在nginx作为静态服务器的情况下提高缓存效率。由于nginx默认不支持这种算法,如果要使用这种调度算法,需安装nginx的hash软件包。配置如下:url
本发明还提供了一种nginx负载均衡装置,包括:
设置单元,用于给每个后端服务器设置权重值;
接收单元,用于接收客户端发起的访问请求;
分发单元,用于根据权重值向每个后端服务器分发访问请求。
本发明还提供了一种nginx负载均衡设备,包括:
至少一个处理器;以及,
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行上述的一种nginx负载均衡方法。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行上述的一种nginx负载均衡方法。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。