一种基于nginx的共享式负载均衡实现方法与流程

文档序号:18738517发布日期:2019-09-21 01:29阅读:292来源:国知局
一种基于nginx的共享式负载均衡实现方法与流程

本发明涉及云服务和计算机网络技术领域,特别涉及一种基于nginx的共享式负载均衡实现方法。



背景技术:

面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等。当单机容量达到极限时,则需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。

从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题。为解决单点故障,可以采取冗余的方式,将相同的应用部署到多台机器上。解决访问统一入口问题,则可以在集群前面增加负载均衡设备,实现流量分发。

负载均衡集群把很多客户集中访问的请求负载压力可能尽可能平均的分摊到计算机集群中处理,能够为企业提供更为实用,性价比更高的系统架构解决方案。客户请求负载通常包括应用程度处理负载和网络流量负载。这样的系统非常适合向使用同一组应用程序为大量用户提供服务。每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间动态分配,以实现负载均衡。负载均衡运行时,一般通过一个或多个前端负载均衡器将客户访问请求分发到后端一组服务器上,从而达到整个系统的高性能和高可用性。

为了提高资源利用率,降低负载均衡产品的成本,本发明提出了一种基于nginx的共享式负载均衡实现方法。负载均衡采用专用资源池的管理模式,在负载均衡资源池中创建租户共享虚机,部署并配置nginx。

nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。



技术实现要素:

本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于nginx的共享式负载均衡实现方法。

本发明是通过如下技术方案实现的:

一种基于nginx的共享式负载均衡实现方法,其特征在于:首先通过openstack技术创建2台云服务器作为负载均衡的承载实例;然后为负载均衡的承载实例创建监听器,并选择监听协议,监听端口,监听算法,健康检查协议,健康检查端口,检查周期,超时时间和最大重试次数配置;最后为监听器添加需要做负载的服务器,并配置相应的负载端口,以实现负载均衡。

本发明基于nginx的共享式负载均衡实现方法,包括以下步骤:

第一步,通过openstack技术,根据规格,镜像,资源池和管理网创建2台虚机作为新的负载均衡实例节点,其中镜像已安装nginx;

如果已经有可以满足使用条件的虚拟机,则不需要创建,即实现共享型负载均衡

第二步,为新创建的负载均衡实例节点配置默认的防火墙信息,包括安全组和安全策略;

第三步,使用SSH技术配置slbinit配置文件,配置负载均衡nginx信息,添加路由信息和网关信息;

第四步,配置负载均衡实例节点网络信息,将businessIP,floatingIP,VIP绑定到虚机上,并将虚机打上tag,以表明作为负载均衡使用;

第五步,配置负载均衡实例路由信息,启用OSPF协议,并在负载均衡实例节点上安装Quagga软件,配置方式为OSPF方式;

第六步,将负载均衡实例节点绑定EIP,以实现外网访问功能;

第七步,创建监听器,并配置监听协议,监听端口,调度算法,健康检查协议(TCP、HTTP),健康检查端口,检查周期,超时时间和最大重试次数;

第八步,修改负载均衡实例节点的nginx配置文件;

第九步,选择与负载均衡实例相同网络的服务器,配置监听端口和权重,根据被负载的服务器的floatingIP和manageIP,使用SSH技术配置nginx.conf文件中相应反向代理的server属性,实现负载均衡。

所述第七步中,监听协议包括但不限于TCP协议,UDP协议,HTTP协议和HTTPS协议,健康检查协议包括但不限于TCP协议和HTTP协议。

所述第七步中,调度算法包括RR算法,WRR算法,WLC算法和SH算法;

所述RR算法,即轮询算法,将请求依次分配给不同的负载均衡实例节点,也就是负载均衡实例节点中均摊分配;所述RR算法简单,但只适合于负载均衡实例节点处理性能差不多的情况;

所述WRR算法,即加权轮训调度,将依据不同负载均衡实例节点的权值分配任务;权值较高的负载均衡实例节点将优先获得任务,并且分配到的连接数将比权值低的负载均衡实例节点更多;相同权值的负载均衡实例节点得到相同数目的连接数;

所述WLC算法,即加权最小连接数算法,假设各台负载均衡实例节点的全职依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的负载均衡实例节点作为下一个分配的节点;

所述SH算法,即源地址哈希调度算法,源地址哈希调度以源地址为关键字查找一个静态hash表来获得需要的负载均衡实例节点。

所述第八步中,使用SSH技术,如果监听协议为TCP协议或UDP协议,则在nginx.conf文件的stream模块下的server属性中,配置监听端口号,反向代理和健康检查参数;

所述第八步中,如果监听协议为HTTP协议,则在nginx.conf文件的http模块下的server属性,配置监听端口号,反向代理和健康检查参数;

所述第八步中,如果监听协议为HTTPS协议,则需要配置服务器证书和CA证书(可选),并在负载均衡实例节点/etc/nginx/ssl目录上生成.crt和.key证书,并在nginx.conf文件的http模块下的server属性中,配置监听端口号,反向代理和健康检查参数。

所述第八步中,使用ngx-healthcheck-module技术实现健康检查。

本发明的有益效果是:该基于nginx的共享式负载均衡实现方法,不仅以自主选择多种调度算法,还可以自主选择是否配置健康检查,提高了资源利用率,降低了负载均衡产品的成本,适于推广应用。

附图说明

附图1为本发明基于nginx的共享式负载均衡实现方法示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

该基于nginx的共享式负载均衡实现方法,首先通过openstack技术创建2台云服务器作为负载均衡的承载实例;然后为负载均衡的承载实例创建监听器,并选择监听协议,监听端口,监听算法,健康检查协议,健康检查端口,检查周期,超时时间和最大重试次数配置;最后为监听器添加需要做负载的服务器,并配置相应的负载端口,以实现负载均衡。

该基于nginx的共享式负载均衡实现方法,包括以下步骤:

第一步,通过openstack技术,根据规格,镜像,资源池和管理网创建2台虚机作为新的负载均衡实例节点,其中镜像已安装nginx;

如果已经有可以满足使用条件的虚拟机,则不需要创建,即实现共享型负载均衡

第二步,为新创建的负载均衡实例节点配置默认的防火墙信息,包括安全组和安全策略;

第三步,使用SSH技术配置slbinit配置文件,配置负载均衡nginx信息,添加路由信息和网关信息;

第四步,配置负载均衡实例节点网络信息,将businessIP,floatingIP,VIP(Virtual IP)绑定到虚机上,并将虚机打上tag,以表明作为负载均衡使用;

第五步,配置负载均衡实例路由信息,启用OSPF协议,并在负载均衡实例节点上安装Quagga软件,配置方式为OSPF方式;

第六步,将负载均衡实例节点绑定EIP,以实现外网访问功能;

第七步,创建监听器,并配置监听协议,监听端口,调度算法,健康检查协议(TCP、HTTP),健康检查端口,检查周期,超时时间和最大重试次数;

第八步,修改负载均衡实例节点的nginx配置文件;

第九步,选择与负载均衡实例相同网络的服务器,配置监听端口和权重,根据被负载的服务器的floatingIP和manageIP,使用SSH技术配置nginx.conf文件中相应反向代理的server属性,实现负载均衡。

所述第七步中,监听协议包括但不限于TCP协议,UDP协议,HTTP协议和HTTPS协议,健康检查协议包括但不限于TCP协议和HTTP协议。

所述第七步中,调度算法包括RR算法,WRR算法,WLC算法和SH算法;

所述RR算法,即轮询算法,将请求依次分配给不同的负载均衡实例节点,也就是负载均衡实例节点中均摊分配;所述RR算法简单,但只适合于负载均衡实例节点处理性能差不多的情况;

所述WRR算法,即加权轮训调度,将依据不同负载均衡实例节点的权值分配任务;权值较高的负载均衡实例节点将优先获得任务,并且分配到的连接数将比权值低的负载均衡实例节点更多;相同权值的负载均衡实例节点得到相同数目的连接数;

所述WLC算法,即加权最小连接数算法,假设各台负载均衡实例节点的全职依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的负载均衡实例节点作为下一个分配的节点;

所述SH算法,即源地址哈希调度算法,源地址哈希调度以源地址为关键字查找一个静态hash表来获得需要的负载均衡实例节点。

所述第八步中,使用SSH技术,如果监听协议为TCP协议或UDP协议,则在nginx.conf文件的stream模块下的server属性中,配置监听端口号,反向代理和健康检查参数;

所述第八步中,如果监听协议为HTTP协议,则在nginx.conf文件的http模块下的server属性,配置监听端口号,反向代理和健康检查参数;

所述第八步中,如果监听协议为HTTPS协议,则需要配置服务器证书和CA证书(可选),并在负载均衡实例节点/etc/nginx/ssl目录上生成.crt和.key证书,并在nginx.conf文件的http模块下的server属性中,配置监听端口号,反向代理和健康检查参数。

所述第八步中,使用ngx-healthcheck-module技术实现健康检查。

以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1