CN106953758A - 一种基于Nginx服务器的动态配置管理方法及系统 - Google Patents

一种基于Nginx服务器的动态配置管理方法及系统 Download PDF

Info

Publication number
CN106953758A
CN106953758A CN201710166060.4A CN201710166060A CN106953758A CN 106953758 A CN106953758 A CN 106953758A CN 201710166060 A CN201710166060 A CN 201710166060A CN 106953758 A CN106953758 A CN 106953758A
Authority
CN
China
Prior art keywords
server
upstream
upstream server
information
nginx servers
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
CN201710166060.4A
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.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information Technology 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 Beijing Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201710166060.4A priority Critical patent/CN106953758A/zh
Publication of CN106953758A publication Critical patent/CN106953758A/zh
Pending legal-status Critical Current

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于Nginx服务器的动态配置管理方法,包括:通过web交互界面添加、修改、删除上游服务器信息,并将上游服务器信息存放至数据中心;Nginx服务器接收到请求时,获取请求的统一资源标识符,基于统一资源标识符查找对应的上游服务器信息,并根据上游服务器预先设定的负载均衡策略对上游服务器信息进行转发;对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;基于Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;基于Nginx服务器检测后端服务器的健康状态;基于Nginx服务器将日志写入消息队列进行管理。本发明能够有效的对不同的Nginx集群进行统一的管理。

Description

一种基于Nginx服务器的动态配置管理方法及系统
技术领域
本发明涉及服务器处理技术领域,尤其涉及一种基于Nginx服务器的动态配置管理方法及系统。
背景技术
Nginx是一种高性能的HTTP(HyperText Transfer Protocol,超文本传输协议)和反向代理服务器,是业界常用的负载均衡软件,通过负载均衡策略给后端服务器分发请求。
当有不同Nginx集群,业务增多和时常的变动,Nginx配置文件也日益庞大,对Nginx的管理显得日益复杂。因此,如何对不同的Nginx集群进行统一的管理是一项亟待解决的问题。
发明内容
本发明提供了一种基于Nginx服务器的动态配置管理方法,能够有效的对不同的Nginx集群进行统一的管理。
本发明提供了一种基于Nginx服务器的动态配置管理方法,包括:
通过web交互界面加入上游服务器信息,并将所述上游服务器信息存放至数据中心;
Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;
对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;
基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;
基于所述Nginx服务器检测后端服务器的健康状态;
基于所述Nginx服务器将日志写入消息队列进行管理。
优选地,所述基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理包括:
通过查询实时获取上游服务器的状态信息;
根据业务需要动态的调整服务器状态;
根据具体业务动态的添加和/或删减服务器。
优选地,所述基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理还包括:
每间隔n分钟,通过从开源的非关系型分布式数据库中获取预设时间段的历史数据;
基于所述历史数据增加服务器、删减服务器或替换服务器。
优选地,所述基于所述历史数据增加服务器包括:
判断所述预设时间段的平均每秒查询率是否超过预设阈值;
当所述预设时间段的平均每秒查询率超过预设阈值时,添加N个服务器。
优选地,所述基于所述历史数据删减服务器包括:
判断上游服务器是否增加过服务器;
当上游服务器增加过服务器时,判断所述预设时间段的平均每秒查询率是否小于所述预设阈值;
当述预设时间段的平均每秒查询率小于所述预设阈值时,将所述上游服务器中新添加的N个服务器删除。
优选地,所述基于所述历史数据替换服务器包括:
判断所述上游服务器中的健康状态是否为up,若否,则采用备用服务器替换该服务器,若是,则:
根据所述预设时间段的平均响应时间、超文本传输协议状态信息判断是否替换该服务器。
一种基于Nginx服务器的动态配置管理系统,包括:
信息管理模块,用于通过web交互界面加入上游服务器信息,并将所述上游服务器信息存放至数据中心;
路由管理模块,用于Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;
流量监控模块,用于对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;
动态管理模块,用于基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;
健康监测模块,用于基于所述Nginx服务器检测后端服务器的健康状态;
日志管理模块,用于基于所述Nginx服务器将日志写入消息队列进行管理。
优选地,所述动态管理模块具体用于:
通过查询实时获取上游服务器的状态信息;
根据业务需要动态的调整服务器状态;
根据具体业务动态的添加和/或删减服务器。
优选地,所述动态管理模块具体用于:
每间隔n分钟,通过从开源的非关系型分布式数据库中获取预设时间段的历史数据;
基于所述历史数据增加服务器、删减服务器或替换服务器。
优选地,所述动态管理模块具体用于:
判断所述预设时间段的平均每秒查询率是否超过预设阈值;
当所述预设时间段的平均每秒查询率超过预设阈值时,添加N个服务器。
优选地,所述动态管理模块具体用于:
判断上游服务器是否增加过服务器;
当上游服务器增加过服务器时,判断所述预设时间段的平均每秒查询率是否小于所述预设阈值;
当述预设时间段的平均每秒查询率小于所述预设阈值时,将所述上游服务器中新添加的N个服务器删除。
优选地,所述动态管理模块具体用于:
判断所述上游服务器中的健康状态是否为up,若否,则采用备用服务器替换该服务器,若是,则:
根据所述预设时间段的平均响应时间、超文本传输协议状态信息判断是否替换该服务器。
由上述方案可知,本发明提供的一种基于Nginx服务器的动态配置管理方法,包括:通过web交互界面加入上游服务器信息,并将所述上游服务器信息存放至数据中心;Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;基于所述Nginx服务器检测后端服务器的健康状态;基于所述Nginx服务器将日志写入消息队列进行管理,能够有效的对不同的Nginx集群进行统一的管理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种基于Nginx服务器的动态配置管理方法实施例1的方法流程图;
图2为本发明公开的一种基于Nginx服务器的动态配置管理系统实施例1的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更加特定地强调实施的独立性,本说明书涉及许多模块或单元。举例而言,模块或单元可由硬件电路实现,该硬件电路包括特制VLSI电路或门阵列,比如逻辑芯片、晶体管,或其它组件。模块或单元也可在可编程的硬设备中实现,比如场效可编程门阵列、可编程阵列逻辑、可编程逻辑设备等等。
模块或单元也可在藉由各种形式的处理器所执行的软件中实现。比如说,一可执行码模块可包括一个或多个实体的或逻辑的计算机指令区块,该区块可能形成为,比如说,对象、程序或函数。然而,鉴别模块或单元的可执行部分不需要物理上放置在一起,但可由存于不同位置的不同指令所组成,当逻辑上组合在一起时,形成模块或单元且达到该模块或单元所要求的目的。
实际上,可执行码模块或单元可以是一单一指令或多个指令,甚至可以分布在位于不同的程序中的数个不同的码区段,并且横跨数个存储设备。同样地,操作数据可被辨识及显示于此模块或单元中,并且可以以任何合适的形式实施且在任何合适的数据结构形式内组织。操作数据可以集合成单一数据集,或可分布在具有不同的存储设备的不同的位置,且至少部分地只以电子信号方式存在于一系统或网络。
本说明书所提及的“实施例”或类似用语表示与实施例有关的特性、结构或特征,包括在本发明的至少一实施例中。因此,本说明书所出现的用语“在一实施例中”、“在实施例中”以及类似用语可能但不必然都指向相同实施例。
再者,本发明所述特性、结构或特征可以以任何方式结合在一个或多个实施例中。以下说明将提供许多特定的细节,比如编程序、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等例子,以提供对本发明实施例的了解。然而相关领域的普通技术人员将看出本发明,即使没有利用其中一个或多个特定细节,或利用其它方法、组件、材料等亦可实施。另一方面,为避免混淆本发明,公知的结构、材料或操作并没有详细描述。
如图1所示,为本发明公开的一种于Nginx服务器的动态配置管理方法实施例1的方法流程图,该方法包括:
S101、通过web交互界面加入上游服务器信息,并将上游服务器信息存放至数据中心;
上游服务器信息通过网站服务器加入,并存放在数据中心,例如存放在Consul中,其中Consul为一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件。
Nginx服务器启动时,先从Consul中加载上游服务器信息到Nginx服务器内存中。在线上环境中,将超文本传输写请求统一资源标识符设置为key。
S102、Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;
Nginx服务器通过超文本传输协议请求的统一资源标识符进行路由转发。Nginx服务器收到请求时,首先获取该请求的统一资源标识符,根据统一资源标识符进行找到对应的上游服务器信息,并根据上游服务器预先设定的负载均衡策略(即上游服务器信息中mode代表的值)进行转发,本方案兼容Nginx服务器原有的轮询、ip_hash、url_hash等负载均衡算法。
S103、对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;
对每一个上游服务器中的服务器进行监控,被监控信息包括:请求的传输控制协议连接的信息:每秒查询率、处理请求的平均时间、发送给客户端的数据大小、超文本传输协议状态1xx到5xx回应报文等信息的监控和统计。上游服务器的每秒查询率、Nginx服务器和上游服务器建立连接的时间(connect_time)、上游服务器响应时间;对上游服务器的状态进行实时监控。
S104、基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;
为了方便开发和运维人员对上游服务器的管理,本方案在Nginx服务器中提供了超文本传输协议接口,以便对上游服务器进行实时动态管理。避免手动修改Nginx服务器配置文件、以及重启Nginx服务器。
所有的操作可以通过web交互界面进行操作,通过web交互界面修改Consul中上游服务器中的信息,利用Consul提供的Watch机制,将修改的上游服务器信息发送给对应Nginx服务器集群,Nginx服务器会在syn_interval分钟生效,避免了重启Nginx服务器带来的性能损失。
对上游服务器的管理主要分为手动操作和基于流量监控数据的动态操作。
S105、基于所述Nginx服务器检测后端服务器的健康状态;
在Nginx服务器启动一个任务、定时的向后端的服务器发送心跳包,根据返回结果,例如:状态码,返回内容,判断后端服务器服务的健康状态,若判断服务器处于非健康状态,该任务在Nginx服务器内部将该服务器标记为down。在本方案里,每一个请求,会根据特定的负载均衡算法选择后端服务器,在转发前,先判断服务器的健康状态,若服务器状态为up,即服务器的状态为健康则转发。
S106、基于所述Nginx服务器将日志写入消息队列进行管理。
Nginx服务器是将日志直接输出到本地的磁盘上,然后通过flume、logstash等工具进行采集。Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统;Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。本方案利用lua模块,将日志按照一定的格式拼接后写入消息队列,例如开源分布式消息系统,storm、hdfs、ES等,(Storm是一个分布式的,可靠的,容错的数据流处理系统,Hdfs是Hadoop分布式文件系统,ES即ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例)进行使用,关闭Nginx服务器本身的日志开关,减少磁盘消耗。减少对采集组件的运维工作。
综上所述,在上述实施例中,通过web交互界面加入上游服务器信息,并将所述上游服务器信息存放至数据中心;Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;基于所述Nginx服务器检测后端服务器的健康状态;基于所述Nginx服务器将日志写入消息队列进行管理,能够有效的对不同的Nginx集群进行统一的管理。
具体的,在上述实施例中,步骤S104中基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理的具体实现方式可以为:
第一,对上游服务器的手动操作,主要有以下几个方面:
a、查询,可以实时获取上游服务器的状态信息;
b、修改状态,可以根据业务需要动态的调整服务器的状态,例如将服务器设置为up或者down,免手动修改配置文件;
c、添加/删减服务器,可以根据具体业务动态的添加和删减服务器。
第二,基于流量监控数据的动态操作:
每隔n分钟,通过从开源的非关系型分布式数据库中获取[now_ts–interval,now_ts]时间段的历史数据,根据历史数据做以下几个方面的操作:
a、增加服务器
判断[now_ts–interval,now_ts]时间段的平均每秒查询率即qps_mean是否超过该upstream的阈值qps_threshold,(qps_threshold=qps_singal_server*upstream_n)其中qps_singal为单个se服务器承受的每秒查询率,upstream_n为上游服务器预设的服务器个数),若超过,则添加Add_N个服务器,其中
b、删减服务器
判断上游服务器是否增加过服务器,若是,则计算[now_ts–interval,now_ts]时间段的平均每秒查询率即qps_mean,
若qps_mean<qps_threahold,则将上游服务器中新添加的Add_N个服务器删除;
若qps_threshold<qps_mean<qps_singal*(upstream_n+Add_N),删减Del_N个服务器,其中
c、替换服务器
第一步:判断上游服务器中服务器的健康状态是否为up,若是转第二步,否则将该服务器用其他备用服务器进行替换;
第二步:根据[now_ts–interval,now_ts]时间段的平均响应时间、超文本传输协议状态等信息判断是否将服务器进行替换,具体的判断依据需要和具体的业务进行定制。
如图2所示,为本发明公开的一种于Nginx服务器的动态配置管理系统实施例1的结构示意图,该系统包括:
信息管理模块201,用于通过web交互界面加入上游服务器信息,并将上游服务器信息存放至数据中心;
上游服务器信息通过web交互界面加入,并存放在数据中心,例如存放在Consul中,其中Consul为一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件。
Nginx服务器启动时,先从Consul中加载上游服务器信息到Nginx服务器内存中。在线上环境中,将超文本传输写请求统一资源标识符设置为key。
路由管理模块202,用于Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;
Nginx服务器通过超文本传输协议请求的统一资源标识符进行路由转发。Nginx服务器收到请求时,首先获取该请求的统一资源标识符,根据统一资源标识符进行找到对应的上游服务器信息,并根据上游服务器预先设定的负载均衡策略(即上游服务器信息中mode代表的值)进行转发,本方案兼容Nginx服务器原有的轮询、ip_hash、url_hash等负载均衡算法。
流量监控模块203,用于对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;
对每一个上游服务器中的服务器进行监控,被监控信息包括:请求的传输控制协议连接的信息:每秒查询率、处理请求的平均时间、发送给客户端的数据大小、超文本传输协议状态1xx到5xx回应报文等信息的监控和统计。上游服务器的每秒查询率、Nginx服务器和上游服务器建立连接的时间(connect_time)、上游服务器响应时间;对上游服务器的状态进行实时监控。
动态管理模块204,用于基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;
为了方便开发和运维人员对上游服务器的管理,本方案在Nginx服务器中提供了超文本传输协议接口,以便对上游服务器进行实时动态管理。避免手动修改Nginx服务器配置文件、以及重启Nginx服务器。
所有的操作可以通过web交互界面进行操作,通过web交互界面修改Consul中上游服务器中的信息,利用Consul提供的Watch机制,将修改的上游服务器信息发送给对应Nginx服务器集群,Nginx服务器会在syn_interval分钟生效,避免了重启Nginx服务器带来的性能损失。
对上游服务器的管理主要分为手动操作和基于流量监控数据的动态操作。
健康监测模块205,用于基于所述Nginx服务器检测后端服务器的健康状态;
在Nginx服务器启动一个任务、定时的向后端的服务器发送心跳包,根据返回结果,例如:状态码,返回内容,判断后端服务器服务的健康状态,若判断服务器处于非健康状态,该任务在Nginx服务器内部将该服务器标记为down。在本方案里,每一个请求,会根据特定的负载均衡算法选择后端服务器,在转发前,先判断服务器的健康状态,若服务器状态为up,即服务器的状态为健康则转发。
日志管理模块206,用于基于所述Nginx服务器将日志写入消息队列进行管理。
Nginx服务器是将日志直接输出到本地的磁盘上,然后通过flume、logstash等工具进行采集。Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统;Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。本方案利用lua模块,将日志按照一定的格式拼接后写入消息队列,例如开源分布式消息系统,storm、hdfs、ES等,(Storm是一个分布式的,可靠的,容错的数据流处理系统,Hdfs是Hadoop分布式文件系统,ES即ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例)进行使用,关闭Nginx服务器本身的日志开关,减少磁盘消耗。减少对采集组件的运维工作。
综上所述,在上述实施例中,通过web交互界面加入上游服务器信息,并将所述上游服务器信息存放至数据中心;Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;基于所述Nginx服务器检测后端服务器的健康状态;基于所述Nginx服务器将日志写入消息队列进行管理,能够有效的对不同的Nginx集群进行统一的管理。
具体的,在上述实施例中,动态管理模块具体实现方式可以为:
第一,对上游服务器的手动操作,主要有以下几个方面:
a、查询,可以实时获取上游服务器的状态信息;
b、修改状态,可以根据业务需要动态的调整服务器的状态,例如将服务器设置为up或者down,免手动修改配置文件;
c、添加/删减服务器,可以根据具体业务动态的添加和删减服务器。
第二,基于流量监控数据的动态操作:
每隔n分钟,通过从开源的非关系型分布式数据库中获取[now_ts–interval,now_ts]时间段的历史数据,根据历史数据做以下几个方面的操作:
a、增加服务器
判断[now_ts–interval,now_ts]时间段的平均每秒查询率即qps_mean是否超过该upstream的阈值qps_threshold,(qps_threshold=qps_singal_server*upstream_n)其中qps_singal为单个se服务器承受的每秒查询率,upstream_n为上游服务器预设的服务器个数),若超过,则添加Add_N个服务器,其中
b、删减服务器
判断上游服务器是否增加过服务器,若是,则计算[now_ts–interval,now_ts]时间段的平均每秒查询率即qps_mean,
若qps_mean<qps_threahold,则将上游服务器中新添加的Add_N个服务器删除;
若qps_threshold<qps_mean<qps_singal*(upstream_n+Add_N),删减Del_N个服务器,其中
c、替换服务器
第一步:判断上游服务器中服务器的健康状态是否为up,若是转第二步,否则将该服务器用其他备用服务器进行替换;
第二步:根据[now_ts–interval,now_ts]时间段的平均响应时间、超文本传输协议状态等信息判断是否将服务器进行替换,具体的判断依据需要和具体的业务进行定制。
综上所述,本方案中提出的一种Nginx服务器动态配置管理方案,简化了Nginx服务器的配置,将配置信息存放在数据中心Consul中,通过web交互界面对Nginx服务器按照集群进行统一管理,实现了信息管理、路由管理、流量监控、动态管理、健康监测和日志管理,减少运维人员的工作量。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种基于Nginx服务器的动态配置管理方法,其特征在于,包括:
通过web交互界面加入上游服务器信息,并将所述上游服务器信息存放至数据中心;
Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;
对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;
基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;
基于所述Nginx服务器检测后端服务器的健康状态;
基于所述Nginx服务器将日志写入消息队列进行管理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理包括:
通过查询实时获取上游服务器的状态信息;
根据业务需要动态的调整服务器状态;
根据具体业务动态的添加和/或删减服务器。
3.根据权利要求2所述的方法,其特征在于,所述基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理还包括:
每间隔n分钟,通过从开源的非关系型分布式数据库中获取预设时间段的历史数据;
基于所述历史数据增加服务器、删减服务器或替换服务器。
4.根据权利要求3所述的方法,其特征在于,所述基于所述历史数据增加服务器包括:
判断所述预设时间段的平均每秒查询率是否超过预设阈值;
当所述预设时间段的平均每秒查询率超过预设阈值时,添加N个服务器。
5.根据权利要求3所述的方法,其特征在于,所述基于所述历史数据删减服务器包括:
判断上游服务器是否增加过服务器;
当上游服务器增加过服务器时,判断所述预设时间段的平均每秒查询率是否小于所述预设阈值;
当述预设时间段的平均每秒查询率小于所述预设阈值时,将所述上游服务器中新添加的N个服务器删除。
6.根据权利要求3所述的方法,其特征在于,所述基于所述历史数据替换服务器包括:
判断所述上游服务器中的健康状态是否为up,若否,则采用备用服务器替换该服务器,若是,则:
根据所述预设时间段的平均响应时间、超文本传输协议状态信息判断是否替换该服务器。
7.一种基于Nginx服务器的动态配置管理系统,其特征在于,包括:
信息管理模块,用于通过web交互界面加入上游服务器信息,并将所述上游服务器信息存放至数据中心;
路由管理模块,用于Nginx服务器接收到请求时,获取所述请求的统一资源标识符,基于所述统一资源标识符查找对应的上游服务器信息,并根据所述上游服务器预先设定的负载均衡策略对所述上游服务器信息进行转发;
流量监控模块,用于对上游服务器进行实时流量监控,并将获取到的流量监控信息发送至数据库;
动态管理模块,用于基于所述Nginx服务器中的超文本传输协议接口对上游服务器进行动态管理;
健康监测模块,用于基于所述Nginx服务器检测后端服务器的健康状态;
日志管理模块,用于基于所述Nginx服务器将日志写入消息队列进行管理。
8.根据权利要求7所述的系统,其特征在于,所述动态管理模块具体用于:
通过查询实时获取上游服务器的状态信息;
根据业务需要动态的调整服务器状态;
根据具体业务动态的添加和/或删减服务器。
9.根据权利要求8所述的系统,其特征在于,所述动态管理模块具体用于:
每间隔n分钟,通过从开源的非关系型分布式数据库中获取预设时间段的历史数据;
基于所述历史数据增加服务器、删减服务器或替换服务器。
10.根据权利要求9所述的系统,其特征在于,所述动态管理模块具体用于:
判断所述预设时间段的平均每秒查询率是否超过预设阈值;
当所述预设时间段的平均每秒查询率超过预设阈值时,添加N个服务器。
11.根据权利要求9所述的系统,其特征在于,所述动态管理模块具体用于:
判断上游服务器是否增加过服务器;
当上游服务器增加过服务器时,判断所述预设时间段的平均每秒查询率是否小于所述预设阈值;
当述预设时间段的平均每秒查询率小于所述预设阈值时,将所述上游服务器中新添加的N个服务器删除。
12.根据权利要求所述的系统,其特征在于,所述动态管理模块具体用于:
判断所述上游服务器中的健康状态是否为up,若否,则采用备用服务器替换该服务器,若是,则:
根据所述预设时间段的平均响应时间、超文本传输协议状态信息判断是否替换该服务器。
CN201710166060.4A 2017-03-20 2017-03-20 一种基于Nginx服务器的动态配置管理方法及系统 Pending CN106953758A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710166060.4A CN106953758A (zh) 2017-03-20 2017-03-20 一种基于Nginx服务器的动态配置管理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710166060.4A CN106953758A (zh) 2017-03-20 2017-03-20 一种基于Nginx服务器的动态配置管理方法及系统

Publications (1)

Publication Number Publication Date
CN106953758A true CN106953758A (zh) 2017-07-14

Family

ID=59471990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710166060.4A Pending CN106953758A (zh) 2017-03-20 2017-03-20 一种基于Nginx服务器的动态配置管理方法及系统

Country Status (1)

Country Link
CN (1) CN106953758A (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107515809A (zh) * 2017-08-18 2017-12-26 国网山东省电力公司信息通信公司 一种电力系统的弹性伸缩方法及系统
CN107613005A (zh) * 2017-09-20 2018-01-19 携程旅游信息技术(上海)有限公司 反向代理方法及装置、电子设备、存储介质
CN108063791A (zh) * 2017-11-01 2018-05-22 千寻位置网络有限公司 基于动态路由的应用部署方法
CN108366102A (zh) * 2018-01-26 2018-08-03 北京奇艺世纪科技有限公司 一种基于Consul的服务发现方法、装置及电子设备
CN108712457A (zh) * 2018-04-03 2018-10-26 苏宁易购集团股份有限公司 基于Nginx反向代理的后端服务器动态负载调整方法及装置
CN109450708A (zh) * 2018-12-14 2019-03-08 北京明朝万达科技股份有限公司 一种Nginx动态配置方法及系统
CN109669846A (zh) * 2018-12-14 2019-04-23 北京金山云网络技术有限公司 管理信息查询方法、装置以及计算机可读介质
CN109729132A (zh) * 2018-05-07 2019-05-07 平安普惠企业管理有限公司 开关控制方法、装置、设备和计算机可读存储介质
CN109960577A (zh) * 2017-12-14 2019-07-02 中国电信股份有限公司 基于Nginx服务器的集群控制方法以及服务器
CN110020061A (zh) * 2018-08-21 2019-07-16 广州市城市规划勘测设计研究院 一种智慧城市时空信息云平台服务引擎
CN110262872A (zh) * 2019-05-17 2019-09-20 平安科技(深圳)有限公司 负载均衡应用管理方法、装置、计算机设备及存储介质
CN110855787A (zh) * 2019-11-18 2020-02-28 上海新炬网络技术有限公司 基于Consul实现OpenResty动态负载均衡的方法
CN111277648A (zh) * 2020-01-19 2020-06-12 北京工业大学 基于Nginx的动态权重负载均衡系统和方法
CN111367662A (zh) * 2020-02-26 2020-07-03 普信恒业科技发展(北京)有限公司 一种负载均衡方法、装置及系统
CN111371598A (zh) * 2020-02-26 2020-07-03 普信恒业科技发展(北京)有限公司 一种配置方法及系统
CN111416836A (zh) * 2020-02-13 2020-07-14 中国平安人寿保险股份有限公司 基于Nginx的服务器维护方法、装置、计算机设备及存储介质
CN111930441A (zh) * 2020-08-10 2020-11-13 上海熙菱信息技术有限公司 一种基于consul的配置文件管理系统及方法
CN112463808A (zh) * 2020-11-27 2021-03-09 中国建设银行股份有限公司 目标集群的数据处理方法、装置和服务器
CN112532714A (zh) * 2020-11-25 2021-03-19 北京金山云网络技术有限公司 一种数据处理方法、处理装置、服务器及存储介质
CN113014445A (zh) * 2021-02-08 2021-06-22 中国工商银行股份有限公司 用于服务器的运维方法、装置、平台及电子设备
CN113537530A (zh) * 2021-09-17 2021-10-22 中建电子信息技术有限公司 基于智慧社区物联网大数据的智能分析及应用方法
CN113726674A (zh) * 2021-08-27 2021-11-30 猪八戒股份有限公司 基于Nginx+Lua的流量调度方法及设备
CN113746918A (zh) * 2021-09-03 2021-12-03 上海幻电信息科技有限公司 超文本传输协议代理方法及系统
CN113938379A (zh) * 2021-09-29 2022-01-14 浪潮云信息技术股份公司 一种动态加载云平台日志采集配置的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050267954A1 (en) * 2004-04-27 2005-12-01 Microsoft Corporation System and methods for providing network quarantine
US20110035259A1 (en) * 2009-08-07 2011-02-10 Yahoo! Inc. Cost and participation models for exchange third-party integration in online advertising
CN105653662A (zh) * 2015-12-29 2016-06-08 中国建设银行股份有限公司 一种基于Flume的数据处理方法和装置
CN105978939A (zh) * 2016-04-25 2016-09-28 乐视控股(北京)有限公司 一种数据下载方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050267954A1 (en) * 2004-04-27 2005-12-01 Microsoft Corporation System and methods for providing network quarantine
US20110035259A1 (en) * 2009-08-07 2011-02-10 Yahoo! Inc. Cost and participation models for exchange third-party integration in online advertising
CN105653662A (zh) * 2015-12-29 2016-06-08 中国建设银行股份有限公司 一种基于Flume的数据处理方法和装置
CN105978939A (zh) * 2016-04-25 2016-09-28 乐视控股(北京)有限公司 一种数据下载方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵瑞雪: "基于Nginx的智能管理方案的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107515809A (zh) * 2017-08-18 2017-12-26 国网山东省电力公司信息通信公司 一种电力系统的弹性伸缩方法及系统
CN107613005A (zh) * 2017-09-20 2018-01-19 携程旅游信息技术(上海)有限公司 反向代理方法及装置、电子设备、存储介质
CN107613005B (zh) * 2017-09-20 2021-04-13 携程旅游信息技术(上海)有限公司 反向代理方法及装置、电子设备、存储介质
CN108063791A (zh) * 2017-11-01 2018-05-22 千寻位置网络有限公司 基于动态路由的应用部署方法
CN109960577A (zh) * 2017-12-14 2019-07-02 中国电信股份有限公司 基于Nginx服务器的集群控制方法以及服务器
CN108366102A (zh) * 2018-01-26 2018-08-03 北京奇艺世纪科技有限公司 一种基于Consul的服务发现方法、装置及电子设备
CN108712457A (zh) * 2018-04-03 2018-10-26 苏宁易购集团股份有限公司 基于Nginx反向代理的后端服务器动态负载调整方法及装置
CN109729132A (zh) * 2018-05-07 2019-05-07 平安普惠企业管理有限公司 开关控制方法、装置、设备和计算机可读存储介质
CN109729132B (zh) * 2018-05-07 2022-03-15 平安普惠企业管理有限公司 开关控制方法、装置、设备和计算机可读存储介质
CN110020061A (zh) * 2018-08-21 2019-07-16 广州市城市规划勘测设计研究院 一种智慧城市时空信息云平台服务引擎
CN110020061B (zh) * 2018-08-21 2021-06-01 广州市城市规划勘测设计研究院 一种智慧城市时空信息云平台服务引擎
CN109669846A (zh) * 2018-12-14 2019-04-23 北京金山云网络技术有限公司 管理信息查询方法、装置以及计算机可读介质
CN109669846B (zh) * 2018-12-14 2022-04-01 北京金山云网络技术有限公司 管理信息查询方法、装置以及计算机可读介质
CN109450708B (zh) * 2018-12-14 2021-09-07 北京明朝万达科技股份有限公司 一种Nginx动态配置方法及系统
CN109450708A (zh) * 2018-12-14 2019-03-08 北京明朝万达科技股份有限公司 一种Nginx动态配置方法及系统
CN110262872A (zh) * 2019-05-17 2019-09-20 平安科技(深圳)有限公司 负载均衡应用管理方法、装置、计算机设备及存储介质
CN110262872B (zh) * 2019-05-17 2023-09-01 平安科技(深圳)有限公司 负载均衡应用管理方法、装置、计算机设备及存储介质
CN110855787A (zh) * 2019-11-18 2020-02-28 上海新炬网络技术有限公司 基于Consul实现OpenResty动态负载均衡的方法
CN111277648A (zh) * 2020-01-19 2020-06-12 北京工业大学 基于Nginx的动态权重负载均衡系统和方法
CN111416836B (zh) * 2020-02-13 2023-08-22 中国平安人寿保险股份有限公司 基于Nginx的服务器维护方法、装置、计算机设备及存储介质
CN111416836A (zh) * 2020-02-13 2020-07-14 中国平安人寿保险股份有限公司 基于Nginx的服务器维护方法、装置、计算机设备及存储介质
CN111367662B (zh) * 2020-02-26 2023-06-02 普信恒业科技发展(北京)有限公司 一种负载均衡方法、装置及系统
CN111371598A (zh) * 2020-02-26 2020-07-03 普信恒业科技发展(北京)有限公司 一种配置方法及系统
CN111367662A (zh) * 2020-02-26 2020-07-03 普信恒业科技发展(北京)有限公司 一种负载均衡方法、装置及系统
CN111930441A (zh) * 2020-08-10 2020-11-13 上海熙菱信息技术有限公司 一种基于consul的配置文件管理系统及方法
CN111930441B (zh) * 2020-08-10 2024-03-29 上海熙菱信息技术有限公司 一种基于consul的配置文件管理系统及方法
CN112532714A (zh) * 2020-11-25 2021-03-19 北京金山云网络技术有限公司 一种数据处理方法、处理装置、服务器及存储介质
CN112463808A (zh) * 2020-11-27 2021-03-09 中国建设银行股份有限公司 目标集群的数据处理方法、装置和服务器
CN113014445A (zh) * 2021-02-08 2021-06-22 中国工商银行股份有限公司 用于服务器的运维方法、装置、平台及电子设备
CN113726674A (zh) * 2021-08-27 2021-11-30 猪八戒股份有限公司 基于Nginx+Lua的流量调度方法及设备
CN113726674B (zh) * 2021-08-27 2023-11-14 猪八戒股份有限公司 基于Nginx+Lua的流量调度方法及设备
CN113746918A (zh) * 2021-09-03 2021-12-03 上海幻电信息科技有限公司 超文本传输协议代理方法及系统
CN113537530B (zh) * 2021-09-17 2021-12-31 中建电子信息技术有限公司 基于智慧社区物联网大数据的智能分析及应用方法
CN113537530A (zh) * 2021-09-17 2021-10-22 中建电子信息技术有限公司 基于智慧社区物联网大数据的智能分析及应用方法
CN113938379A (zh) * 2021-09-29 2022-01-14 浪潮云信息技术股份公司 一种动态加载云平台日志采集配置的方法

Similar Documents

Publication Publication Date Title
CN106953758A (zh) 一种基于Nginx服务器的动态配置管理方法及系统
US10929435B2 (en) Content delivery network analytics management via edge stage collectors
US10560465B2 (en) Real time anomaly detection for data streams
US10789237B2 (en) Providing a distributed transaction information storage service
CN101124565B (zh) 基于应用层消息的数据流量负载平衡
CN106953740B (zh) 应用中页面访问数据的处理方法、客户端、服务器及系统
US20160210061A1 (en) Architecture for a transparently-scalable, ultra-high-throughput storage network
US20160373328A1 (en) Monitoring network entities via a central monitoring system
KR20170106648A (ko) 대용량 네트워크 데이터의 처리 기법
CN101099345A (zh) 利用采样和试探在网络元件处解释应用消息
CN111641563B (zh) 基于分布式场景的流量自适应方法与系统
US11416564B1 (en) Web scraper history management across multiple data centers
KR102423039B1 (ko) 대용량 네트워크 모니터링을 위한 실시간 패킷 데이터 저장 방법 및 장치
US10445136B1 (en) Randomized subrequest selection using request-specific nonce
CN112395357A (zh) 一种数据收集方法、装置和电子设备
KR101776662B1 (ko) 실시간성 이벤트를 수집 및 분석하기 위한 데이터 저장 및 가공 방법, 그리고 이를 이용한 네트워크 시스템
KR102423038B1 (ko) 대용량 네트워크 모니터링을 위한 실시간 패킷 데이터 수집 방법 및 장치
US20230018983A1 (en) Traffic counting for proxy web scraping
US20240163327A1 (en) Systems and methods of exposing data from blockchain nodes
KR102537370B1 (ko) 대용량 네트워크 모니터링을 위한 실시간 패킷 분석 방법 및 장치
Kaczmarski et al. Content delivery network monitoring
CN115842716A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170714