基于Nginx的负载均衡实现方法、装置、计算机设备和介质与流程

文档序号:16200057发布日期:2018-12-08 06:31阅读:113来源:国知局
本申请涉及计算机
技术领域
:,特别是涉及一种基于nginx的负载均衡实现方法、装置、计算机设备和介质。
背景技术
:随着计算机技术的发展,大量业务系统涌现,对业务系统的并发访问量也急剧增加。为了快速响应海量并发的web(worldwideweb,万维网)访问请求,即http(hypertexttransferprotocol,超文本传输协议)请求,人们采用nginx(enginex)等负载均衡软件将海量http请求分流转发至不同服务器执行。nginx接收客户端发送的http请求,基于预设的负载均衡策略将http请求分流转发给内部网络上的服务器集群,并将从服务器集群上得到的结果返回给客户端。nginx本身提供了一些负载均衡策略,但大多为静态策略,难以快速响应海量并发http请求,对http请求响应效率造成较大影响。技术实现要素:基于此,有必要针对上述技术问题,提供一种能够动态调整负载均衡策略,从而提高http请求响应效率的基于nginx的负载均衡实现方法、装置、计算机设备和介质。一种基于nginx的负载均衡实现方法,所述方法包括:接收终端发送的http请求;所述http请求包含业务标识;获取所述业务标识初始对应的配置子文件;所述配置子文件记录对应的负载均衡策略;监测nginx集群中各服务节点在监控时段的性能指标;基于所述性能指标对所述负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库;调用文件转换组件在数据库中读取新增的负载均衡策略;将读取到的负载均衡策略转换为所述业务标识当前对应的配置子文件;执行当前的配置子文件,使调整后的负载均衡策略生效;根据调整后的负载均衡策略,将所述http请求分配至相应服务节点处理。在其中一个实施例中,所述获取所述业务标识对应的配置子文件之前,还包括:获取配置文件;所述配置文件记录了多个服务节点标识;获取每个服务节点标识对应的集群信息;根据所述集群信息,添加每个服务节点标识对应的业务标识;基于所述业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。在其中一个实施例中,所述监测nginx集群中各服务节点在监控时段的性能指标,包括:当接收到对所述服务节点的访问请求时,在所述访问请求中提取特征字段;根据所述特征字段生成所述访问请求对应的特征向量;将所述特征向量输入预设的安全监控模型,检测访问请求是否为风险访问;统计在监控时段检测到的风险访问的数量,根据所述数量确定相应服务节点的性能指标。在其中一个实施例中,所述监测nginx集群中各服务节点在监控时段的性能指标,包括:在分流转发http请求后接收网络层返回的状态码;根据所述http状态码,统计在监控时段分配至每个服务节点且处理成功的http请求的数量,记作请求成功数量;根据所述请求成功数量确定相应服务节点的性能指标。在其中一个实施例中,当前的配置子文件具有对应的文件标识;所述执行当前的配置子文件,使调整后的负载均衡策略生效包括:将当前的配置子文件转换为字符串;将所述文件标识及所述字符串发送至redis服务器进行存储;在高速缓存中查找是否存在新增的文件标识;若不存在,从所述redis服务器指定目录读取文件标识;将redis服务器中与读取到的文件标识对应的字符串加载至内存中执行,使调整后的负载均衡策略生效。一种基于nginx的负载均衡实现装置,所述装置包括:策略获取模块,用于接收终端发送的http请求;所述http请求包含业务标识;获取所述业务标识初始对应的配置子文件;所述配置子文件记录对应的负载均衡策略;性能检测模块,用于监测nginx集群中各服务节点在监控时段的性能指标;策略调整模块,用于基于所述性能指标对所述负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库;调用文件转换组件在数据库中读取新增的负载均衡策略;将读取到的负载均衡策略转换为所述业务标识当前对应的配置子文件;执行当前的配置子文件,使调整后的负载均衡策略生效;负载均衡模块,用于根据调整后的负载均衡策略,将所述http请求分配至相应服务节点处理。在其中一个实施例中,所述装置还包括文件拆分模块,用于获取配置文件;所述配置文件记录了多个服务节点标识;获取每个服务节点标识对应的集群信息;根据所述集群信息,添加每个服务节点标识对应的业务标识;基于所述业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。在其中一个实施例中,所述性能检测模块还用于当接收到对所述服务节点的访问请求时,在所述访问请求中提取特征字段;根据所述特征字段生成所述访问请求对应的特征向量;将所述特征向量输入预设的安全监控模型,检测访问请求是否为风险访问;统计在监控时段检测到的风险访问的数量,根据所述数量确定相应服务节点的性能指标。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:接收终端发送的http请求;所述http请求包含业务标识;获取所述业务标识初始对应的配置子文件;所述配置子文件记录对应的负载均衡策略;监测nginx集群中各服务节点在监控时段的性能指标;基于所述性能指标对所述负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库;调用文件转换组件在数据库中读取新增的负载均衡策略;将读取到的负载均衡策略转换为所述业务标识当前对应的配置子文件;执行当前的配置子文件,使调整后的负载均衡策略生效;根据调整后的负载均衡策略,将所述http请求分配至相应服务节点处理。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收终端发送的http请求;所述http请求包含业务标识;获取所述业务标识初始对应的配置子文件;所述配置子文件记录对应的负载均衡策略;监测nginx集群中各服务节点在监控时段的性能指标;基于所述性能指标对所述负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库;调用文件转换组件在数据库中读取新增的负载均衡策略;将读取到的负载均衡策略转换为所述业务标识当前对应的配置子文件;执行当前的配置子文件,使调整后的负载均衡策略生效;根据调整后的负载均衡策略,将所述http请求分配至相应服务节点处理。上述基于nginx的负载均衡实现方法、装置、计算机设备和存储介质,根据终端发送的http请求中携带的业务标识,可以获取对应的配置子文件;通过监测nginx集群中各服务节点在监控时段的性能指标,可以基于所述性能指标对配置子文件记录的负载均衡策略进行调整,并将调整后的负载均衡策略和相应业务标识存储至数据库;基于预置的文件转换组件可以在数据库中读取新增的负载均衡策略,并将读取到的负载均衡策略转换为所述业务标识当前对应的配置子文件;通过执行当前的配置子文件,即可使调整后的负载均衡策略生效,从而可以根据调整后的负载均衡策略将所述http请求分配至相应服务节点处理。由于对nginx集群内各服务节点的性能指标实时监测,并根据监测结果在相应业务标识对应配置子文件记录的负载均衡策略动态调整,即根据当前各服务器节点的实际处理能力调整负载均衡策略,使负载均衡策略适应性更强,从而可以提高http请求响应效率。附图说明图1为一个实施例中基于nginx的负载均衡实现方法的应用场景图;图2为一个实施例中基于nginx的负载均衡实现方法的流程示意图;图3为一个实施例中监测性能指标步骤的流程示意图;图4为一个实施例中基于nginx的负载均衡实现装置的结构框图;图5为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请提供的基于nginx的负载均衡实现方法,可以应用于如图1所示的应用环境中。其中,终端102与nginx服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,nginx服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。nginx服务器104可以是物理服务器,也可以是基于负载均衡软件nginx实现的虚拟服务器。nginx服务器104接收终端102发送的http请求。http请求携带了业务标识。nginx服务器104预存储了多个业务标识分别对应的配置子文件。配置子文件可以是从传统的nginx服务器104存储的配置文件中拆分得到的。nginx服务器104监测nginx集群中各服务节点在监控时段的性能指标。nginx服务器104获取业务标识初始对应的配置子文件,根据各服务节点的性能指标识别配置子文件记录的负载均衡策略是否需要调整。若需要调整,则nginx服务器104基于监测到的性能指标对负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库。nginx服务器104对指定端口的负载均衡策略更新事件进行监听,当监听到负载均衡策略更新事件时,nginx服务器104调用文件转换组件在数据库中读取新增的负载均衡策略对应的配置信息,将读取到的配置信息转换为业务标识当前对应的配置子文件,将预存储的相同业务标识对应的初始的配置子文件删除,并执行当前的配置子文件,使变更后的负载均衡策略生效。nginx服务器104基于调整后的负载均衡策略将http请求分流转发给相应nginx集群,并将nginx集群返回的http相应发送至终端102。上述对http请求的分流转发过程中,实时监测nginx集群内各服务节点的性能指标,根据监测结果在相应业务标识对应的配置子文件中动态调整负载均衡策略,使得负载均衡策略适应性更强,从而可以提高http请求响应效率。在一个实施例中,如图2所示,提供了一种基于nginx的负载均衡实现方法,以该方法应用于图1中的nginx服务器为例进行说明,包括以下步骤:步骤202,接收终端发送的http请求;http请求包含业务标识。终端上运行了浏览器或app(application,应用程序)等客户端。客户端的互联网访问方式被预先配置为通过nginx服务器进行互联网访问。当用户在客户端进行输入操作时,终端根据用户的输入操作生成http请求,将http请求发送至配置的nginx服务器。http请求携带了业务标识。业务标识为客户端期望访问的nginx集群的集群标识。nginx集群包括多个web服务器(以下称“服务节点”)。步骤204,获取业务标识初始对应的配置子文件;配置子文件记录对应的负载均衡策略。nginx服务器获取业务标识初始对应的配置子文件,在配置子文件中读取对应的负载均衡策略。配置子文件可以是从配置文件中拆分得到的。传统方式,负载均衡策略记录在一个配置文件中,使得每次对nginx服务器进行负载均衡配置管理,都要基于配置文件记录的全部配置信息进行配置管理,当配置文件记录的配置信息较多时会明显延长配置时间,降低配置效率。为了实现提高配置效率,nginx服务器预先将不同业务标识对应的负载均衡策略分离,即基于业务标识将配置文件拆分多个配置子文件。在一个实施例中,获取业务标识对应的配置子文件之前,还包括:获取配置文件;配置文件记录了多个服务节点标识;获取每个服务节点标识对应的集群信息;根据集群信息,添加每个服务节点标识对应的业务标识;基于业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。传统的nginx服务器将一个或多个nginx集群的集群信息记录至配置文件。本实施例nginx服务器针对每个nginx集群生成对应的业务标识。nginx服务器根据每个服务节点对应的集群信息,在配置文件中添加每个服务节点标识对应的业务标识,基于业务标识将配置文件拆分为多个业务标识分别对应的配置子文件。在一个具体的实施例中,每个nginx集群为一个web应用提供服务,可以采用同一域名进行访问,由此可以基于域名对配置文件进行拆分,即基于域名对配置文件拆分。拆分后的每个配置子文件记录了一个业务标识及对应的多个服务节点标识和初始的负载均衡策略对应的配置信息。步骤206,监测nginx集群中各服务节点在监控时段的性能指标。监控时段可以是在接收到http请求之前的一段时间。监控时段的时间长度可以根据需求自由设置,如1个月。nginx服务器在nginx集群多个服务节点分别部署了监控组件。nginx服务器调用监控组件对nginx集群中各服务节点进行监控,生成监控结果。监控结果包括多个性能指标,如物理资源利用率、稳定性或安全性等。其中,物理资源利用率包括cpu利用率、内存利用率和磁盘利用率等。性能指标可以是定性的性能描述,也可以是定量的性能指标值。步骤208,基于性能指标对负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库。步骤210,调用文件转换组件在数据库中读取新增的负载均衡策略。步骤212,将读取到的负载均衡策略转换为业务标识当前对应的配置子文件。配置子文件记录的负载均衡策略包括每个服务节点对应的初始权重。nginx服务器获取策略调整模型。策略调整模型包括多个性能指标分别对应的转化子模型,用于将相应的性能指标转化为对应的分数值。策略调整模型还包括多个性能指标对应的权值因子。nginx服务器将监测得到的多个服务节点的性能指标分别输入策略调整模型,得到每个服务节点对应的结果值。nginx服务器根据多个结果值,确定多个服务节点分别对应的目标权重。例如,基于策略调整模型计算得到nginx集群中三个服务节点a、b和c对应的结果值分别为0.6、0.8、0.5,则对应的服务节点a的目标权重可以是0.6/(0.6+0.8+0.5)=0.32,服务节点b的目标权重可以是0.8/(0.6+0.8+0.5)=0.42,服务节点c的目标权重可以是1-0.32-0.42=0.26。nginx服务器将调整后的负载均衡策略,即重新确定的多个服务节点的目标权重的配置信息记录至数据库,并生成配置变更指令。nginx服务器预先集成了文件转换组件。文件转换组件为用于将配置信息转换为配置文件。文件转换组件根据配置变更指令,在数据库读取新增的业务标识及对应的配置信息。文件转换组件中包含模板引擎,模板引擎可以是jinja模板(一种基于python的模板引擎)等。文件转换组件基于模板引擎将读取到的配置信息转换相应业务标识对应的配置子文件。步骤214,执行当前的配置子文件,使调整后的负载均衡策略生效。nginx服务器将预存储的相同业务标识对应的配置子文件删除,将转换得到的配置子文件加载至内存进行执行,使更新后的负载均衡策略生效。由于预先将大的配置文件拆分成多个业务标识对应的小的配置子文件,当需要进行负载均衡策略更新,即进行配置变更时,只需对相应业务标识对应的配置子文件进行替换即可实现局部配置更新,避免了每次对整个配置文件全量更新的繁琐,提高配置更新效率。步骤216,根据调整后的负载均衡策略,将http请求分配至相应服务节点处理。nginx服务器根据调整后的负载均衡策略,将http请求分配至相应服务节点处理,并将服务节点基于对http请求的处理返回的http响应发送至终端。本实施例中,根据终端发送的http请求中携带的业务标识,可以获取对应的配置子文件;通过监测nginx集群中各服务节点在监控时段的性能指标,可以基于性能指标对配置子文件记录的负载均衡策略进行调整,并将调整后的负载均衡策略和相应业务标识存储至数据库;基于预置的文件转换组件可以在数据库中读取新增的负载均衡策略,并将读取到的负载均衡策略转换为业务标识当前对应的配置子文件;通过执行当前的配置子文件,即可使调整后的负载均衡策略生效,从而可以根据调整后的负载均衡策略将http请求分配至相应服务节点处理。由于对nginx集群内各服务节点的性能指标实时监测,并根据监测结果在相应业务标识对应配置子文件记录的负载均衡策略动态调整,即根据当前各服务器节点的实际处理能力调整负载均衡策略,使负载均衡策略适应性更强,从而可以提高http请求响应效率;此外,基于文件转换组件使调整后的负载均衡策略即时生效,避免了传统方式需要人工调整配置信息的繁琐,提高负载均衡策略更新效率。在一个实施例中,监测nginx集群中各服务节点在监控时段的性能指标,包括:当接收到对服务节点的访问请求时,在访问请求中提取特征字段;根据特征字段生成访问请求对应的特征向量;将特征向量输入预设的安全监控模型,检测访问请求是否为风险访问;统计在监控时段检测到的风险访问的数量,根据数量确定相应服务节点的性能指标。nginx服务器在监控时段按照预设的负载均衡策略,将接收到http请求分流转发至相应服务节点处理。相应服务节点上部署的监控组件对接收到http请求进行拦截,获取特征字段表,对获取到的http请求进行解析,在http请求中提取与特征字段表中字段标识对应的特征字段。其中,特征字段表中记录了http请求中报文的特征字段标识、特征字段的数据类型和特征字段。监控组件提取到特征字段,根据特征字段与数值的映射关系将提取到的特征字段映射为数值,将映射得到的数值添加到预设特征向量中与提到的特征字段所对应的位置,得到http请求对应的特征向量。监控组件将生成的特征向量输入预先训练好的安全监控模型,利用安全监控模型对生成的特征向量进行处理,得到该http请求是否构成风险访问的监测结果。若http请求构成风险访问,则监控组件拒绝该http请求;若http请求不构成风险访问,则监控组件允许http请求进行访问。此外,监控组件统计监控时段接收到的构成风险访问的http请求的数量,将该数量反馈至nginx服务器。nginx服务器根据每个服务节点在监控时段接收到构成风险访问的http请求的数量,判断nginx集群的安全性。本实施例中,通过预先训练好的安全监控模型,对服务节点进行安全监控,无需人工预设检测方式,减少了人工干预程度,缩短了对风险访问的检测时间,提高了风险访问检测准确率。在一个实施例中,如图3所示,监测性能指标的步骤,即监测nginx集群中各服务节点在监控时段的性能指标,包括:步骤302,在分流转发http请求后接收网络层返回的状态码。步骤304,根据http状态码,统计在监控时段分配至每个服务节点且处理成功的http请求的数量,记作请求成功数量。步骤306,根据请求成功数量确定相应服务节点的性能指标。传统的nginx基于链接数监测各服务节点的性能指标,即通过监测应用节点与服务节点之间已存在的连接数量,将http请求分配至当前负荷最小的服务节点进行处理。然而,链接是一种双向的存在,应用节点必须通过心跳或者请求结果维护这种链接状态,这就增加了业务实现特别是连接池维护的成本,影响http请求响应效率。为了解决上述问题,本实施例nginx基于监控时段传输成功的http请求的数量监测各服务节点的性能指标。具体的,nginx服务器在监控时段根据预设负载均衡策略向nginx集群多个服务节点分别发送http请求,并记录每个http请求的传输结果。nginx服务器统计监控时段内发往不同服务节点且传输结果为传输成功的http请求的数量,记作请求成功数量。http请求是否传输成功不再通过传统方案中的心跳来判断,而是通过nginx服务器本端tcp协议中的网络层返回的状态码来判断。例如,状态码“00”表示传输成功;返回其他状态码(以下称“错误码”)则表示传输失败。nginx服务器还可以根据返回的错误码的不同判断导致传输失败的原因。nginx服务器基于请求成功数量,判断每个服务节点在监控时段的负载量。容易理解,请求成功数量越多表示相应服务节点所承受的负载越大。在另一个实施例中,nginx服务器记录每个http请求的发送时间。nginx服务器接收nginx集群中各服务节点在监控时段对http请求处理而返回的http响应,记录每个http请求对应的http响应的接收时间。nginx服务器根据监控时段的多个http请求的发送时间和接收时间,计算每个http请求的响应时间。nginx服务器还根据每个服务节点在监控时段对http请求的响应时间的方差,根据方差判断每个服务节点的稳定性。本实施例中,监控时段传输成功的http请求的数量监测各服务节点的性能指标,与传统的基于链接数的监测方式,可以减少nginx服务器及各个服务节点的业务实现开销,减少对各服务节点资源的占用,进而间接提高http请求相应效率。在一个实施例中,当前的配置子文件具有对应的文件标识;执行当前的配置子文件,使调整后的负载均衡策略生效包括:将当前的配置子文件转换为字符串;将文件标识及字符串发送至redis服务器进行存储;在高速缓存中查找是否存在新增的文件标识;若不存在,从redis服务器指定目录读取文件标识;将redis服务器中与读取到的文件标识对应的字符串加载至内存中执行,使调整后的负载均衡策略生效。由于传统的负载均衡策略对应的配置文件是存储在nginx服务器的内存中的,所以若新增或变更负载均衡策略,则需要将对应配置文件上传到nginx服务器,这个过程中需要重新加载(reload)或重启nginx服务器,而重启nginx服务器不仅耗时而且十分麻烦。为了解决上述问题,nginx服务器借助redis服务器中转,实现负载均衡策略的动态更新。具体的,nginx服务器将cache高速缓存存储器(以下简称“高速缓存”)里面的事件标识清除。其中,高速缓存里面内容的清除可以采用专用的清除机制,即设置一个清空高速缓存里面内容的接口,通过接口进行内容的清除,也可以针对事件标识设定对应的清除时限,当清除时限到达则自动清除。这里并不对如何清空高速缓存里面的内容作限制。一般来说,在nginx服务器的高速缓存中会存储有当前正在执行和已执行的配置子文件对应的事件标识。但如果需要变更某个业务标识对应的负载均衡策略,则首选需要清空高速缓存里面的内容,也就是说,如果要使用新的负载均衡策略,则需要清除高速缓存里面之前的事件标识。nginx服务器生成新增事件标识对应的配置子文件后,将事件标识对应的配置子文件先转换为字符串的形式,将事件标识及字符串形式的配置子文件发送至redis服务器进行存储。nginx服务器按照预设时间频率(比如,每隔3秒查找1次)在高速缓存里面查找是否存在事件标识。若不存在,则很可能是更换了某个业务标识对应的负载均衡策略。而当前负载均衡策略是在redis服务器中设置的。所以,如果cache里面不存在当前的事件标识,则nginx服务器从redis服务器中指定目录读取当前的事件标识,并将读取到的当前事件标识保存到高速缓存中。nginx服务器获取到新增的事件标识后,首先根据该新增的事件标识在内存中查找是否存在对应的配置子文件。如果不存在,说明该事件标识对应的负载均衡策略为新增的负载均衡策略,其对应的配置子文件以字符串的形式存在于redis服务器。nginx服务器首先将以字符串形式存在的配置子文件加载到lua中,然后在lua中将以字符串形式存在的配置子文件转换为table形式,然后存储到内存中。其中,lua是一个可以嵌入到nginx服务器配置子文件中的动态脚本语言;table形式是直接可以被nginx服务器调用的形式。本实施例中,由于nginx服务器可以通过加载字符串的方式将存在于redis服务器中的配置子文件加载到内存中,所以当需要新增配置子文件时,只需要将配置子文件转换为字符串,然后上传到redis服务器,nginx服务器即可动态的从redis服务器中加载新增的配置子文件到内存中,不需要重启nginx服务器,简单易操作,节省时间,从而间接提高http请求响应效率。应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。在一个实施例中,如图4所示,提供了一种基于nginx的负载均衡实现装置,包括:策略获取模块402、性能检测模块404、策略调整模块406和负载均衡模块408,其中:策略获取模块402,用于接收终端发送的http请求;http请求包含业务标识;获取业务标识初始对应的配置子文件;配置子文件记录对应的负载均衡策略。性能检测模块404,用于监测nginx集群中各服务节点在监控时段的性能指标。策略调整模块406,用于基于性能指标对负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库;调用文件转换组件在数据库中读取新增的负载均衡策略;将读取到的负载均衡策略转换为业务标识当前对应的配置子文件;执行当前的配置子文件,使调整后的负载均衡策略生效。负载均衡模块408,用于根据调整后的负载均衡策略,将http请求分配至相应服务节点处理。在一个实施例中,该装置还包括文件拆分模块410,用于获取配置文件;配置文件记录了多个服务节点标识;获取每个服务节点标识对应的集群信息;根据集群信息,添加每个服务节点标识对应的业务标识;基于业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。在一个实施例中,性能检测模块404还用于当接收到对服务节点的访问请求时,在访问请求中提取特征字段;根据特征字段生成访问请求对应的特征向量;将特征向量输入预设的安全监控模型,检测访问请求是否为风险访问;统计在监控时段检测到的风险访问的数量,根据数量确定相应服务节点的性能指标。在一个实施例中,性能检测模块404还用于在分流转发http请求后接收网络层返回的状态码;根据http状态码,统计在监控时段分配至每个服务节点且处理成功的http请求的数量,记作请求成功数量;根据请求成功数量确定相应服务节点的性能指标。在一个实施例中,当前的配置子文件具有对应的文件标识;策略调整模块406还用于将当前的配置子文件转换为字符串;将文件标识及字符串发送至redis服务器进行存储;在高速缓存中查找是否存在新增的文件标识;若不存在,从redis服务器指定目录读取文件标识;将redis服务器中与读取到的文件标识对应的字符串加载至内存中执行,使调整后的负载均衡策略生效。关于基于nginx的负载均衡实现装置的具体限定可以参见上文中对于基于nginx的负载均衡实现方法的限定,在此不再赘述。上述基于nginx的负载均衡实现装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备的存储器中,以便处理器调用执行以上各模块对应的操作。在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务标识和负载均衡策略。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于nginx的负载均衡实现方法。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收终端发送的http请求;http请求包含业务标识;获取业务标识初始对应的配置子文件;配置子文件记录对应的负载均衡策略;监测nginx集群中各服务节点在监控时段的性能指标;基于性能指标对负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库;调用文件转换组件在数据库中读取新增的负载均衡策略;将读取到的负载均衡策略转换为业务标识当前对应的配置子文件;执行当前的配置子文件,使调整后的负载均衡策略生效;根据调整后的负载均衡策略,将http请求分配至相应服务节点处理。在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取配置文件;配置文件记录了多个服务节点标识;获取每个服务节点标识对应的集群信息;根据集群信息,添加每个服务节点标识对应的业务标识;基于业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。在一个实施例中,处理器执行计算机程序时还实现以下步骤:当接收到对服务节点的访问请求时,在访问请求中提取特征字段;根据特征字段生成访问请求对应的特征向量;将特征向量输入预设的安全监控模型,检测访问请求是否为风险访问;统计在监控时段检测到的风险访问的数量,根据数量确定相应服务节点的性能指标。在一个实施例中,处理器执行计算机程序时还实现以下步骤:在分流转发http请求后接收网络层返回的状态码;根据http状态码,统计在监控时段分配至每个服务节点且处理成功的http请求的数量,记作请求成功数量;根据请求成功数量确定相应服务节点的性能指标。在一个实施例中,当前的配置子文件具有对应的文件标识;处理器执行计算机程序时还实现以下步骤:将当前的配置子文件转换为字符串;将文件标识及字符串发送至redis服务器进行存储;在高速缓存中查找是否存在新增的文件标识;若不存在,从redis服务器指定目录读取文件标识;将redis服务器中与读取到的文件标识对应的字符串加载至内存中执行,使调整后的负载均衡策略生效。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收终端发送的http请求;http请求包含业务标识;获取业务标识初始对应的配置子文件;配置子文件记录对应的负载均衡策略;监测nginx集群中各服务节点在监控时段的性能指标;基于性能指标对负载均衡策略进行调整,将调整后的负载均衡策略和相应业务标识存储至数据库;调用文件转换组件在数据库中读取新增的负载均衡策略;将读取到的负载均衡策略转换为业务标识当前对应的配置子文件;执行当前的配置子文件,使调整后的负载均衡策略生效;根据调整后的负载均衡策略,将http请求分配至相应服务节点处理。在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取配置文件;配置文件记录了多个服务节点标识;获取每个服务节点标识对应的集群信息;根据集群信息,添加每个服务节点标识对应的业务标识;基于业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接收到对服务节点的访问请求时,在访问请求中提取特征字段;根据特征字段生成访问请求对应的特征向量;将特征向量输入预设的安全监控模型,检测访问请求是否为风险访问;统计在监控时段检测到的风险访问的数量,根据数量确定相应服务节点的性能指标。在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在分流转发http请求后接收网络层返回的状态码;根据http状态码,统计在监控时段分配至每个服务节点且处理成功的http请求的数量,记作请求成功数量;根据请求成功数量确定相应服务节点的性能指标。在一个实施例中,当前的配置子文件具有对应的文件标识;计算机程序被处理器执行时还实现以下步骤:将当前的配置子文件转换为字符串;将文件标识及字符串发送至redis服务器进行存储;在高速缓存中查找是否存在新增的文件标识;若不存在,从redis服务器指定目录读取文件标识;将redis服务器中与读取到的文件标识对应的字符串加载至内存中执行,使调整后的负载均衡策略生效。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应注意,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1