CN108829459B - 基于Nginx服务器的配置方法、装置、计算机设备和存储介质 - Google Patents

基于Nginx服务器的配置方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN108829459B
CN108829459B CN201810549056.0A CN201810549056A CN108829459B CN 108829459 B CN108829459 B CN 108829459B CN 201810549056 A CN201810549056 A CN 201810549056A CN 108829459 B CN108829459 B CN 108829459B
Authority
CN
China
Prior art keywords
configuration
subfile
event
identifier
server
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.)
Active
Application number
CN201810549056.0A
Other languages
English (en)
Other versions
CN108829459A (zh
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.)
Kangjian Information Technology Shenzhen Co Ltd
Original Assignee
Kangjian Information Technology Shenzhen 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 Kangjian Information Technology Shenzhen Co Ltd filed Critical Kangjian Information Technology Shenzhen Co Ltd
Priority to CN201810549056.0A priority Critical patent/CN108829459B/zh
Publication of CN108829459A publication Critical patent/CN108829459A/zh
Application granted granted Critical
Publication of CN108829459B publication Critical patent/CN108829459B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及一种基于Nginx服务器的配置方法、装置、计算机设备和存储介质。所述方法包括:监听终端触发的局部配置变更事件;获取所述局部配置变更事件对应的业务标识和第一配置信息;根据所述第一配置信息生成所述业务标识当前对应的配置子文件;执行当前的配置子文件,完成对Nginx服务器的局部配置变更。采用本方法能够提高配置效率。

Description

基于Nginx服务器的配置方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于Nginx服务器的配置方法、装置、计算机设备和存储介质。
背景技术
负载均衡是集群技术的核心,极大的提高了Web(World Wide Web,万维网)访问速率和并发量。负载均衡可以通过增设服务器硬件或部署负载均衡软件两种方式实现。Nginx是目前主流的一款负载均衡软件,又称反向代理服务器(以下称“Nginx服务器”)。Nginx服务器接收客户端发送的Http请求,基于预设的负载均衡策略将Http请求分流转发给内部网络上的服务器集群,并将从服务器集群上得到的结果返回给客户端。负载均衡策略记录在一个配置文件中。传统方式中,每次对Nginx服务器进行负载均衡配置管理,都要基于配置文件记录的全部配置信息进行配置管理,当配置文件记录的配置信息较多时会明显延长配置时间,降低配置效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高配置效率的基于Nginx服务器的配置方法、装置、计算机设备和存储介质。
一种基于Nginx服务器的配置方法,所述方法包括:监听终端触发的局部配置变更事件;获取所述局部配置变更事件对应的业务标识和第一配置信息;根据所述第一配置信息生成所述业务标识当前对应的配置子文件;执行当前的配置子文件,完成对Nginx服务器的局部配置变更。
在其中一个实施例中,所述监听终端触发的局部配置变更事件之前,还包括:获取所述Nginx服务器对应的配置文件;将所述配置文件拆分为多个业务标识初始对应的配置子文件;将多个初始的配置子文件发送至Nginx服务器,使所述Nginx服务器执行初始的配置子文件;所述执行当前的配置子文件,包括:根据当前的配置子文件生成局部配置变更指令;将所述局部配置变更指令发送至Nginx服务器,使所述Nginx服务器将预存储的相同业务标识对应的初始的配置子文件删除,并执行当前的配置子文件。
在其中一个实施例中,所述配置文件记录了多个负载均衡主机标识;所述将配置文件拆分为多个业务标识对应的配置子文件包括:获取每个负载均衡主机标识对应的集群信息;根据所述集群信息,添加每个负载均衡主机标识对应的业务标识;基于所述业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。
在其中一个实施例中,所述局部配置变更事件具有对应的事件标识;所述根据第一配置信息生成所述业务标识对应的配置子文件,包括:将所述事件标识、业务标识及第一配置信息存储至数据库;当监听到局部配置变更事件时,将所述事件标识输入预设的文件转换组件;调用文件转换组件在数据库中读取所述事件标识对应的第一配置信息;将读取到的第一配置信息转换为相应业务标识对应的配置子文件。
在其中一个实施例中,所述根据第一配置信息生成所述业务标识对应的配置子文件,包括:调用文件转换组件,根据所述第一配置信息生成负载均衡配置脚本和地址匹配脚本;将所述负载均衡配置脚本和地址匹配脚本存储至指定目录;对所述指定目录下的全部负载均衡配置脚本和地址匹配脚本进行拼接,生成所述配置子文件。
在其中一个实施例中,所述局部配置变更事件具有对应的事件标识;所述执行配置子文件,包括:将所述配置子文件转换为字符串;将所述事件标识及所述字符串发送至Redis服务器进行存储;向所述Nginx服务器发送局部配置变更指令,使所述Nginx服务器根据所述局部配置变更指令在高速缓存中查找是否存在新增的事件标识,若不存在,则从所述Redis服务器指定目录读取事件标识,将Redis服务器中与读取到的事件标识对应的字符串加载至内存中执行。
在其中一个实施例中,该方法还包括:监听终端触发的局部配置新增事件,获取所述局部配置新增事件对应的Nginx所在主机标识、多个负载均衡主机标识和第二配置信息;根据所述负载均衡主机标识将相应多个负载均衡主机配置为一个集群,生成所述集群对应的业务标识;基于所述第二配置信息生成所述业务标识对应的配置子文件;根据所述Nginx所在主机标识将所述配置子文件发送至相应Nginx服务器,使所述Nginx服务器执行所述配置子文件,完成局部配置新增。
一种基于Nginx服务器的配置装置,所述装置包括:事件监听模块,用于监听终端触发的局部配置变更事件;文件转换模块,用于获取所述局部配置变更事件对应的业务标识和第一配置信息;根据所述第一配置信息生成所述业务标识当前对应的配置子文件;配置变更模块,用于执行当前的配置子文件,完成对Nginx服务器的局部配置变更。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:监听终端触发的局部配置变更事件;获取所述局部配置变更事件对应的业务标识和第一配置信息;根据所述第一配置信息生成所述业务标识当前对应的配置子文件;执行当前的配置子文件,完成对Nginx服务器的局部配置变更。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:监听终端触发的局部配置变更事件;获取所述局部配置变更事件对应的业务标识和第一配置信息;根据所述第一配置信息生成所述业务标识当前对应的配置子文件;执行当前的配置子文件,完成对Nginx服务器的局部配置变更。
上述基于Nginx服务器的配置方法、装置、计算机设备和存储介质,用户可以在终端基于任一业务标识触发对应的局部配置变更事件;通过监听终端触发的局部配置变更事件,可以获取对应的业务标识和第一配置信息;根据所述第一配置信息,可以生成相应业务标识当前对应的配置子文件;执行当前的配置子文件,即可完成对Nginx服务器的局部配置变更。由于将大的配置文件拆分成多个小的配置子文件,当需要进行配置变更时,用户只需对相应业务标识对应的配置子文件进行修改即可实现局部配置更新,避免了每次对整个配置文件全量更新的繁琐,提高配置更新效率。
附图说明
图1为一个实施例中基于Nginx服务器的配置方法的应用场景图;
图2为一个实施例中基于Nginx服务器的配置方法的流程示意图;
图3为一个实施例中局部配置新增步骤的流程示意图;
图4为一个实施例中基于Nginx服务器的配置装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于Nginx服务器的配置方法,可以应用于如图1所示的应用环境中。其中,终端102与配置服务器104通过网络进行通信。配置服务器104与Nginx服务器106通过网络进行通信。终端102与Nginx服务器106通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。配置服务器104与Nginx服务器106分别可以是物理服务器,也可以是虚拟服务器。配置服务器104与Nginx服务器106可以是同一服务器,也可以是不同服务器。Nginx服务器106接收终端102发送的Http请求,基于配置文件记录的负载均衡策略将Http请求分流转发给相应Web服务器集群,并将Web服务器集群返回的Http相应发送至终端102。
配置服务器104上部署了配置管理平台及对应的数据库。用户可以通过终端102访问配置管理平台,并基于配置管理平台对Nginx服务器106上记录的负载均衡策略配置管理。具体的,当需要变更某个Web服务器集群对应的负载均衡策略时,用户在配置管理平台触发局部配置变更事件。配置管理平台将局部配置变更事件对应的业务标识和第一配置信息存储至数据库。配置管理平台调用文件转换组件,在数据库读取新增的业务标识和第一配置信息,并根据第一配置信息生成业务标识当前对应的配置子文件。配置管理平台基于当前的配置子文件生成配置更新指令,将配置更新指令发送至Nginx服务器106。Nginx服务器106在指定目录存储多个业务标识分别初始对应的配置子文件。Nginx服务器106根据配置更新指令,将预存储的相同业务标识对应的初始的配置子文件删除,并执行当前的配置子文件,使变更后的第一配置信息生效,完成对Nginx服务器106的局部配置变更。上述配置管理过程,借助数据库中转,使用户无需基于对配置文件的直接操作实现配置变更,提高操作便利性;将大的配置文件拆分成多个小的配置子文件,后续用户只需对相应业务标识对应的配置子文件进行修改即可实现局部配置更新,避免了每次对整个配置文件全量更新的繁琐,提高配置更新效率。
在一个实施例中,如图2所示,提供了一种基于Nginx服务器的配置方法,以该方法应用于图1中的配置服务器为例进行说明,包括以下步骤:
步骤202,监听终端触发的局部配置变更事件。
不同Http请求的业务内容不同,对服务器资源的需求也不同。根据Http请求的业务类型不同,可以在配置管理平台将处理相同业务的一组服务器配置为一个业务线,即Web服务器集群。终端可以基于不同IP或域名访问不同Web服务器集群。每个Web服务器集群具有对应的业务标识。包含业务标识的集群信息记录在Nginx服务器执行的配置文件中。配置文件还记录了多个业务标识对应的负载均衡策略。
配置服务器部署了数据库,在数据库中存储了业务线表、负载均衡表和主机信息表等。业务线表用于存放多个业务标识及每个业务标识对应的属性信息,如业务线名称、业务类型、环境、机房标识、Nginx所在主机标识、负载均衡主机标识等。负载均衡表用于存放多个业务标识对应的变更前后的配置信息。配置信息包括多个配置项,如域名、监听端口、目录、后端服务端口、后端服务目录、服务器头设置等。主机信息表用于存放多个业务标识分别对应的负载均衡主机的属性信息,如机房名、机柜、位置、状态、主机名、IP地址等。
当需要对某个Web服务器集群对应的负载均衡策略进行变更时,用户基于终端访问配置管理平台,配置管理平台展示配置页面。配置页面包括多个业务标识及多个配置项目的选项。配置项目包括配置新增、配置删除、配置变更和配置查询等。根据需要进行配置管理的Web服务器集群,用户在配置页面选定对应的业务标识和配置项目。用户通过选定“配置变更”配置项目,即可触发局部配置变更事件。
步骤204,获取局部配置变更事件对应的业务标识和第一配置信息。
当用户触发局部配置变更事件时,终端基于用户选定的业务标识获取对应的初始的配置信息,在配置页面展示获取到的配置信息。初始的配置信息可以是缓存在终端的,也可以是终端从配置服务器动态获取的。用户可以在初始的配置信息基础上修改其中一个或多个配置项,得到当前的配置信息,记作第一配置信息。在另一个实施例中,终端直接在配置页面展示多个空白的配置项,无需获取初始的配置信息,用户在配置页面填写每个配置项对应的参数值。
步骤206,根据第一配置信息生成业务标识当前对应的配置子文件。
终端将用户录入的业务标识及对应的第一配置信息发送至配置服务器。配置服务器在接收到业务标识及对应的第一配置信息时,生成对应的事件标识。将事件标识、业务标识及第一配置信息存储至数据库负载均衡表。
配置管理平台预先集成了文件转换组件。文件转换组件为用于将配置信息转换为配置文件。配置管理平台对指定端口发生的配置变更操作进行监听,并在监听到配置变更操作时,调用文件转换组件在数据库负载均衡表全量读取新增的事件标识对应的第一配置信息。配置管理平台调用文件转换组件将读取到的第一配置信息转换为相应业务标识当前对应的配置子文件。
步骤208,执行当前的配置子文件,完成对Nginx服务器的局部配置变更。
配置服务器根据转换得到的配置子文件生成配置变更指令,将配置变更指令发送至Nginx服务器。使Nginx服务器将预存储的相同业务标识对应的配置子文件删除,执行转换得到的配置子文件,完成对Nginx服务器的局部配置变更。
本实施例中,用户可以在终端基于任一业务标识触发对应的局部配置变更事件;通过监听终端触发的局部配置变更事件,可以获取对应的业务标识和第一配置信息;根据第一配置信息,可以生成相应业务标识当前对应的配置子文件;执行当前的配置子文件,即可完成对Nginx服务器的局部配置变更。由于将大的配置文件拆分成多个小的配置子文件,当需要进行配置变更时,用户只需对相应业务标识对应的配置子文件进行修改即可实现局部配置更新,避免了每次对整个配置文件全量更新的繁琐,提高配置更新效率。
在一个实施例中,监听终端触发的局部配置变更事件之前,还包括:获取Nginx服务器对应的配置文件;将配置文件拆分为多个业务标识初始对应的配置子文件;将多个初始的配置子文件发送至Nginx服务器,使Nginx服务器执行初始的配置子文件;执行当前的配置子文件,包括:根据当前的配置子文件生成局部配置变更指令;将局部配置变更指令发送至Nginx服务器,使Nginx服务器将预存储的相同业务标识对应的初始的配置子文件删除,并执行当前的配置子文件。
为了实现局部配置管理,配置服务器预先将不同业务标识对应的负载均衡策略分离,即基于业务标识将Nginx服务器对应的配置文件拆分多个配置子文件,并将拆分得到的多个配置子文件发送至Nginx服务器进行存储。
当需要对某个业务标识对应的配置信息进行变更时,只需基于该业务标识变更后的配置信息生成新的配置子文件,并在Nginx服务器对该业务标识对应的初始的配置子文件进行替换,在Nginx服务器执行当前的配置子文件后,相应业务标识对应的新的配置信息生效,即可实现单独对某个业务标识的负载均衡策略的更新,即实现局部配置变更。
本实施例中,预先基于业务标识将大的配置文件拆分成每个业务标识对应的小的配置子文件,当需要进行配置变更时,用户只需对相应业务标识对应的配置子文件进行替换即可实现局部配置更新,避免了每次对整个配置文件全量更新的繁琐,提高配置更新效率。
在一个实施例中,配置文件记录了多个负载均衡主机标识;将配置文件拆分为多个业务标识对应的配置子文件包括:获取每个负载均衡主机标识对应的集群信息;根据集群信息,添加每个负载均衡主机标识对应的业务标识;基于业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。
Nginx服务器上执行的配置文件记录了多个Web服务器集群的集群信息。每个Web服务器集群包括多个负载均衡主机。针对每个Web服务器集群生成对应的业务标识。配置服务器根据每个负载均衡主机对应的集群信息,在配置文件中添加每个负载均衡主机标识对应的业务标识,基于业务标识将配置文件拆分为多个业务标识分别对应的配置子文件。在一个具体的实施例中,每个Web服务器集群为一个Web应用提供服务,可以采用同一域名进行访问,由此可以基于域名对配置文件进行拆分,即基于域名对配置文件拆分。拆分后的每个配置子文件记录了一个业务标识及对应的多个负载均衡主机标识和初始的配置信息。
本实施例中,结合用户通常基于Web服务器集群进行负载均衡配置变更的实际情况,基于业务标识将配置文件拆分为多个业务标识对应的配置子文件,使得这种拆分方式更加适应实际应用。
在一个实施例中,局部配置变更事件具有对应的事件标识;根据第一配置信息生成业务标识对应的配置子文件,包括:将事件标识、业务标识及第一配置信息存储至数据库;当监听到局部配置变更事件时,将事件标识输入预设的文件转换组件;调用文件转换组件在数据库中读取事件标识对应的第一配置信息;将读取到的第一配置信息转换为相应业务标识对应的配置子文件。
配置管理平台对指定端口发生的局部配置变更事件进行监听,并在监听到局部配置变更事件时,生成对应的事件标识,将事件标识及局部配置变更事件对应的业务标识和第一配置信息存储至数据库。每个事件标识具有对应的写入时间。在一个实施例中,数据库可以只用于存储单个事件标识对应的第一配置信息,当有新增的事件标识及对应的第一配置信息写入时,将历史的事件标识及对应的第一配置信息删除。在另一个实施例中,数据库用于存储全部写入的事件标识及对应的第一配置信息。
配置管理平台在监听到局部配置变更事件时,还调用文件转换组件根据多个事件标识对应的写入时间,在数据库中读取新增的事件标识,进而读取新增的事件标识对应的业务标识和第一配置信息。文件转换组件中包含模板引擎,模板引擎可以是Jinja模板(一种基于python的模板引擎)等。配置管理平台基于文件转换组件提供的模板引擎,将读取到的第一配置信息转换相应业务标识对应的配置子文件。
本实施例中,借助数据库中转以及能够自动将信息转换为文件的文件转换组件,使用户无需基于对配置文件的直接操作实现配置变更,而是在配置管理平台前端页面进行配置变更操作,提高操作便利性。
在一个实施例中,根据第一配置信息生成业务标识对应的配置子文件,包括:调用文件转换组件,根据第一配置信息生成负载均衡配置脚本和地址匹配脚本;将负载均衡配置脚本和地址匹配脚本存储至指定目录;对指定目录下的全部负载均衡配置脚本和地址匹配脚本进行拼接,生成配置子文件。
Nginx服务器执行的配置文件主要包括upstream(负载均衡服务器设置)和location(URL匹配特定位置设置)等部分。每个业务标识对应的配置子文件在配置服务器具有对应的存放目录。
配置管理平台根据读取到的业务标识,在数据库主机信息表中读取对应的IP信息。配置管理平台基于文件转换组件提供的模板引擎,将读取到的IP信息和第一配置信息生成location配置脚本(以下称“负载均衡配置脚本”)和upsteam配置脚本(以下称“地址匹配脚本”),并将负载均衡配置脚本和地址匹配脚本存放至对应的存放目录。
文件转换组件还包括主配置文件。配置管理平台基于文件转换组件提供的主配置文件,加载该相应业务标识对应的存放目录下的全部配置脚本,即将相应存放目录下的全部负载均衡配置脚本和地址匹配脚本进行拼接,得到对应的配置子文件。
本实施例中,基于变更后的第一配置信息自动生成与本次配置变更操作对应的执行脚本,后续Nginx服务器直接执行该执行脚本即可实现配置自动变更,操作便捷且提高配置变更效率。
在一个实施例中,局部配置变更事件具有对应的事件标识;执行配置子文件,包括:将配置子文件转换为字符串;将事件标识及字符串发送至Redis服务器进行存储;向Nginx服务器发送局部配置变更指令,使Nginx服务器根据局部配置变更指令在高速缓存中查找是否存在新增的事件标识,若不存在,则从Redis服务器指定目录读取事件标识,将Redis服务器中与读取到的事件标识对应的字符串加载至内存中执行。
由于传统的负载均衡策略对应的配置文件是存储在Nginx服务器的内存中的,所以若新增或变更负载均衡策略,则需要将对应配置文件上传到Nginx服务器,这个过程中需要重新加载(reload)或重启Nginx服务器,而重启Nginx服务器不仅耗时而且十分麻烦。
为了解决上述问题,配置服务器借助Redis服务器中转,实现负载均衡策略的动态更新。具体的,配置服务器生成事件标识清除指令,将事件标识清除指令发送至Nginx服务器。Nginx服务器根据事件标识清除指令,将Cache高速缓存存储器(以下简称“高速缓存”)里面的事件标识清除。其中,高速缓存里面内容的清除可以采用专用的清除机制,即设置一个清空高速缓存里面内容的接口,通过接口进行内容的清除。这里并不对如何清空高速缓存里面的内容作限制。一般来说,在Nginx服务器的高速缓存中会存储有当前正在执行和已执行的配置子文件对应的事件标识。但如果需要变更某个业务标识对应的负载均衡策略,则首选需要清空高速缓存里面的内容,也就是说,如果要使用新的负载均衡策略,则需要清除高速缓存里面之前的事件标识。
配置服务器生成新增事件标识对应的配置子文件后,将事件标识对应的配置子文件先转换为字符串的形式,将事件标识及字符串形式的配置子文件发送至Redis服务器进行存储。配置服务器根据新增事件标识及对应的配置子文件在Redis服务器的存储目录,生成局部配置变更指令,将局部配置变更指令发送至Nginx服务器。
Nginx服务器根据局部配置变更指令在高速缓存里面查找是否存在事件标识。若不存在,则很可能是更换了某个业务标识对应的负载均衡策略。而当前负载均衡策略是在Redis服务器中设置的。所以,如果Cache里面不存在当前的事件标识,则Nginx服务器从Redis服务器中指定目录读取当前的事件标识,并将读取到的当前事件标识保存到高速缓存中。
Nginx服务器获取到新增的事件标识后,首先根据该新增的事件标识在内存中查找是否存在对应的配置子文件。如果不存在,说明该事件标识对应的负载均衡策略为新增的负载均衡策略,其对应的配置子文件以字符串的形式存在于Redis服务器。Nginx服务器首先将以字符串形式存在的配置子文件加载到lua中,然后在lua中将以字符串形式存在的配置子文件转换为Table形式,然后存储到内存中。其中,lua是一个可以嵌入到Nginx服务器配置子文件中的动态脚本语言;Table形式是直接可以被Nginx服务器调用的形式。
本实施例中,由于Nginx服务器可以通过加载字符串的方式将存在于Redis服务器中的配置子文件加载到内存中,所以当需要新增配置子文件时,只需要将配置子文件转换为字符串,然后上传到Redis服务器,Nginx服务器即可动态的从Redis服务器中加载新增的配置子文件到内存中,不需要重启Nginx服务器,简单易操作,节省时间,从而间接提高Http请求响应效率。
在一个实施例中,如图3所示,改方法还包括局部配置新增的步骤,包括:
步骤302,监听终端触发的局部配置新增事件,获取局部配置新增事件对应的Nginx所在主机标识、多个负载均衡主机标识和第二配置信息。
步骤304,根据负载均衡主机标识将相应多个负载均衡主机配置为一个集群,生成集群对应的业务标识。
步骤306,基于第二配置信息生成业务标识对应的配置子文件。
步骤308,根据Nginx所在主机标识将配置子文件发送至相应Nginx服务器,使Nginx服务器执行配置子文件,完成局部配置新增。
Nginx服务器可以实现对多个Web服务器集群的负载均衡分流转发。配置管理平台可以对多个Nginx服务器存储负载均衡策略进行管理。用户通过选定“配置新增”配置项目,即可触发局部配置新增事件。配置管理平台获取局部配置新增事件对应的多个负载均衡主机标识。主机标识可以是IP地址等。配置管理平台集成了集群管理组件。配置管理平台调用集群管理组件根据多个负载均衡主机标识将相应负载均衡主机配置为一个集群,并生成该集群对应的业务标识。
配置管理平台获取局部配置新增事件对应的Nginx所在主机标识和第二配置信息。配置管理平台按照上述方式将第二配置信息转换为相应业务标识对应的配置子文件,并根据Nginx所在主机标识将生成的配置子文件发送至相应Nginx服务器,使Nginx服务器执行配置子文件,完成新增集群封装和负载均衡策略配置。
本实施例中,由于预先将大的配置文件拆分成多个小的配置子文件,允许用户单独对某个业务标识对应的负载均衡策略新增,而无需每次都拉取整个配置文件进行全量新增,提高配置新增效率。
应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种基于Nginx服务器的配置装置,包括:事件监听模块402、文件转换模块404和配置变更模块406,其中:
事件监听模块402,用于监听终端触发的局部配置变更事件。
文件转换模块404,用于获取局部配置变更事件对应的业务标识和第一配置信息;根据第一配置信息生成业务标识当前对应的配置子文件。
配置变更模块406,用于执行当前的配置子文件,完成对Nginx服务器的局部配置变更。
在一个实施例中,该装置还包括文件拆分模块408,用于获取Nginx服务器对应的配置文件;将配置文件拆分为多个业务标识初始对应的配置子文件;将多个初始的配置子文件发送至Nginx服务器,使Nginx服务器执行初始的配置子文件;执行当前的配置子文件,包括:根据当前的配置子文件生成局部配置变更指令;将局部配置变更指令发送至Nginx服务器,使Nginx服务器将预存储的相同业务标识对应的初始的配置子文件删除,并执行当前的配置子文件。
在一个实施例中,配置文件记录了多个负载均衡主机标识;文件拆分模块408还用于获取每个负载均衡主机标识对应的集群信息;根据集群信息,添加每个负载均衡主机标识对应的业务标识;基于业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。
在一个实施例中,局部配置变更事件具有对应的事件标识;文件转换模块404还用于将事件标识、业务标识及第一配置信息存储至数据库;当监听到局部配置变更事件时,将事件标识输入预设的文件转换组件;调用文件转换组件在数据库中读取事件标识对应的第一配置信息;将读取到的第一配置信息转换为相应业务标识对应的配置子文件。
在一个实施例中,文件转换模块404还用于调用文件转换组件,根据第一配置信息生成负载均衡配置脚本和地址匹配脚本;将负载均衡配置脚本和地址匹配脚本存储至指定目录;对指定目录下的全部负载均衡配置脚本和地址匹配脚本进行拼接,生成配置子文件。
在一个实施例中,局部配置变更事件具有对应的事件标识;配置变更模块406还用于将配置子文件转换为字符串;将事件标识及字符串发送至Redis服务器进行存储;向Nginx服务器发送局部配置变更指令,使Nginx服务器根据局部配置变更指令在高速缓存中查找是否存在新增的事件标识,若不存在,则从Redis服务器指定目录读取事件标识,将Redis服务器中与读取到的事件标识对应的字符串加载至内存中执行。
在一个实施例中,该装置还包括配置新增模块410,用于监听终端触发的局部配置新增事件,获取局部配置新增事件对应的Nginx所在主机标识、多个负载均衡主机标识和第二配置信息;根据负载均衡主机标识将相应多个负载均衡主机配置为一个集群,生成集群对应的业务标识;基于第二配置信息生成业务标识对应的配置子文件;根据Nginx所在主机标识将配置子文件发送至相应Nginx服务器,使Nginx服务器执行配置子文件,完成局部配置新增。
关于基于Nginx服务器的配置装置的具体限定可以参见上文中对于基于Nginx服务器的配置方法的限定,在此不再赘述。上述基于Nginx服务器的配置装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储事件标识、业务标识、第一配置信息和第二配置信息等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于Nginx服务器的配置方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:监听终端触发的局部配置变更事件;获取局部配置变更事件对应的业务标识和第一配置信息;根据第一配置信息生成业务标识当前对应的配置子文件;执行当前的配置子文件,完成对Nginx服务器的局部配置变更。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取Nginx服务器对应的配置文件;将配置文件拆分为多个业务标识初始对应的配置子文件;将多个初始的配置子文件发送至Nginx服务器,使Nginx服务器执行初始的配置子文件;执行当前的配置子文件,包括:根据当前的配置子文件生成局部配置变更指令;将局部配置变更指令发送至Nginx服务器,使Nginx服务器将预存储的相同业务标识对应的初始的配置子文件删除,并执行当前的配置子文件。
在一个实施例中,配置文件记录了多个负载均衡主机标识;处理器执行计算机程序时还实现以下步骤:获取每个负载均衡主机标识对应的集群信息;根据集群信息,添加每个负载均衡主机标识对应的业务标识;基于业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。
在一个实施例中,局部配置变更事件具有对应的事件标识;处理器执行计算机程序时还实现以下步骤:将事件标识、业务标识及第一配置信息存储至数据库;当监听到局部配置变更事件时,将事件标识输入预设的文件转换组件;调用文件转换组件在数据库中读取事件标识对应的第一配置信息;将读取到的第一配置信息转换为相应业务标识对应的配置子文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用文件转换组件,根据第一配置信息生成负载均衡配置脚本和地址匹配脚本;将负载均衡配置脚本和地址匹配脚本存储至指定目录;对指定目录下的全部负载均衡配置脚本和地址匹配脚本进行拼接,生成配置子文件。
在一个实施例中,局部配置变更事件具有对应的事件标识;处理器执行计算机程序时还实现以下步骤:将配置子文件转换为字符串;将事件标识及字符串发送至Redis服务器进行存储;向Nginx服务器发送局部配置变更指令,使Nginx服务器根据局部配置变更指令在高速缓存中查找是否存在新增的事件标识,若不存在,则从Redis服务器指定目录读取事件标识,将Redis服务器中与读取到的事件标识对应的字符串加载至内存中执行。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:监听终端触发的局部配置新增事件,获取局部配置新增事件对应的Nginx所在主机标识、多个负载均衡主机标识和第二配置信息;根据负载均衡主机标识将相应多个负载均衡主机配置为一个集群,生成集群对应的业务标识;基于第二配置信息生成业务标识对应的配置子文件;根据Nginx所在主机标识将配置子文件发送至相应Nginx服务器,使Nginx服务器执行配置子文件,完成局部配置新增。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:监听终端触发的局部配置变更事件;获取局部配置变更事件对应的业务标识和第一配置信息;根据第一配置信息生成业务标识当前对应的配置子文件;执行当前的配置子文件,完成对Nginx服务器的局部配置变更。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取Nginx服务器对应的配置文件;将配置文件拆分为多个业务标识初始对应的配置子文件;将多个初始的配置子文件发送至Nginx服务器,使Nginx服务器执行初始的配置子文件;执行当前的配置子文件,包括:根据当前的配置子文件生成局部配置变更指令;将局部配置变更指令发送至Nginx服务器,使Nginx服务器将预存储的相同业务标识对应的初始的配置子文件删除,并执行当前的配置子文件。
在一个实施例中,配置文件记录了多个负载均衡主机标识;计算机程序被处理器执行时还实现以下步骤:获取每个负载均衡主机标识对应的集群信息;根据集群信息,添加每个负载均衡主机标识对应的业务标识;基于业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。
在一个实施例中,局部配置变更事件具有对应的事件标识;计算机程序被处理器执行时还实现以下步骤:将事件标识、业务标识及第一配置信息存储至数据库;当监听到局部配置变更事件时,将事件标识输入预设的文件转换组件;调用文件转换组件在数据库中读取事件标识对应的第一配置信息;将读取到的第一配置信息转换为相应业务标识对应的配置子文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:调用文件转换组件,根据第一配置信息生成负载均衡配置脚本和地址匹配脚本;将负载均衡配置脚本和地址匹配脚本存储至指定目录;对指定目录下的全部负载均衡配置脚本和地址匹配脚本进行拼接,生成配置子文件。
在一个实施例中,局部配置变更事件具有对应的事件标识;计算机程序被处理器执行时还实现以下步骤:将配置子文件转换为字符串;将事件标识及字符串发送至Redis服务器进行存储;向Nginx服务器发送局部配置变更指令,使Nginx服务器根据局部配置变更指令在高速缓存中查找是否存在新增的事件标识,若不存在,则从Redis服务器指定目录读取事件标识,将Redis服务器中与读取到的事件标识对应的字符串加载至内存中执行。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:监听终端触发的局部配置新增事件,获取局部配置新增事件对应的Nginx所在主机标识、多个负载均衡主机标识和第二配置信息;根据负载均衡主机标识将相应多个负载均衡主机配置为一个集群,生成集群对应的业务标识;基于第二配置信息生成业务标识对应的配置子文件;根据Nginx所在主机标识将配置子文件发送至相应Nginx服务器,使Nginx服务器执行配置子文件,完成局部配置新增。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种基于Nginx服务器的配置方法,所述方法包括:
监听终端触发的局部配置变更事件;
获取所述局部配置变更事件对应的业务标识和第一配置信息;
根据所述第一配置信息生成所述业务标识当前对应的配置子文件;
执行当前的配置子文件,完成对Nginx服务器的局部配置变更;
所述根据第一配置信息生成所述业务标识对应的配置子文件,包括:
调用文件转换组件,根据所述第一配置信息生成负载均衡配置脚本和地址匹配脚本;
将所述负载均衡配置脚本和地址匹配脚本存储至指定目录;
对所述指定目录下的全部负载均衡配置脚本和地址匹配脚本进行拼接,生成所述配置子文件。
2.根据权利要求1所述的方法,其特征在于,所述监听终端触发的局部配置变更事件之前,还包括:
获取所述Nginx服务器对应的配置文件;
将所述配置文件拆分为多个业务标识初始对应的配置子文件;
将多个初始的配置子文件发送至Nginx服务器,使所述Nginx服务器执行初始的配置子文件;
所述执行当前的配置子文件,包括:
根据当前的配置子文件生成局部配置变更指令;
将所述局部配置变更指令发送至所述Nginx服务器,使所述Nginx服务器将预存储的相同业务标识对应的初始的配置子文件删除,并执行当前的配置子文件。
3.根据权利要求2所述的方法,其特征在于,所述配置文件记录了多个负载均衡主机标识;所述将配置文件拆分为多个业务标识初始对应的配置子文件包括:
获取每个负载均衡主机标识对应的集群信息;
根据所述集群信息,添加每个负载均衡主机标识对应的业务标识;
基于所述业务标识对配置文件拆分,得到每个业务标识对应的配置子文件。
4.根据权利要求1所述的方法,其特征在于,所述局部配置变更事件具有对应的事件标识;所述根据第一配置信息生成所述业务标识对应的配置子文件,包括:
将所述事件标识、业务标识及第一配置信息存储至数据库;
当监听到局部配置变更事件时,将所述事件标识输入预设的文件转换组件;
调用文件转换组件在数据库中读取所述事件标识对应的第一配置信息;
将读取到的第一配置信息转换为相应业务标识对应的配置子文件。
5.根据权利要求1所述的方法,其特征在于,所述局部配置变更事件具有对应的事件标识;所述执行当前的配置子文件,包括:
将所述配置子文件转换为字符串;
将所述事件标识及所述字符串发送至Redis服务器进行存储;
向所述Nginx服务器发送局部配置变更指令,使所述Nginx服务器根据所述局部配置变更指令在高速缓存中查找是否存在新增的事件标识,若不存在,则从所述Redis服务器指定目录读取事件标识,将Redis服务器中与读取到的事件标识对应的字符串加载至内存中执行。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
监听终端触发的局部配置新增事件,获取所述局部配置新增事件对应的Nginx所在主机标识、多个负载均衡主机标识和第二配置信息;
根据所述负载均衡主机标识将相应多个负载均衡主机配置为一个集群,生成所述集群对应的业务标识;
基于所述第二配置信息生成所述业务标识对应的配置子文件;
根据所述Nginx所在主机标识将所述配置子文件发送至相应Nginx服务器,使所述Nginx服务器执行所述配置子文件,完成局部配置新增。
7.一种基于Nginx服务器的配置装置,其特征在于,所述装置包括:
事件监听模块,用于监听终端触发的局部配置变更事件;
文件转换模块,用于获取所述局部配置变更事件对应的业务标识和第一配置信息;根据所述第一配置信息生成所述业务标识当前对应的配置子文件;
配置变更模块,用于执行当前的配置子文件,完成对Nginx服务器的局部配置变更;
所述文件转换模块,具体用于调用文件转换组件,根据所述第一配置信息生成负载均衡配置脚本和地址匹配脚本;将所述负载均衡配置脚本和地址匹配脚本存储至指定目录;对所述指定目录下的全部负载均衡配置脚本和地址匹配脚本进行拼接,生成所述配置子文件。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN201810549056.0A 2018-05-31 2018-05-31 基于Nginx服务器的配置方法、装置、计算机设备和存储介质 Active CN108829459B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810549056.0A CN108829459B (zh) 2018-05-31 2018-05-31 基于Nginx服务器的配置方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810549056.0A CN108829459B (zh) 2018-05-31 2018-05-31 基于Nginx服务器的配置方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN108829459A CN108829459A (zh) 2018-11-16
CN108829459B true CN108829459B (zh) 2023-03-21

Family

ID=64147174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810549056.0A Active CN108829459B (zh) 2018-05-31 2018-05-31 基于Nginx服务器的配置方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN108829459B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766365A (zh) * 2018-12-13 2019-05-17 北京字节跳动网络技术有限公司 基于redis的运行事件控制方法、装置及电子设备
CN109450708B (zh) * 2018-12-14 2021-09-07 北京明朝万达科技股份有限公司 一种Nginx动态配置方法及系统
CN110224878A (zh) * 2019-06-28 2019-09-10 北京金山云网络技术有限公司 网关配置更新方法、装置和服务器
CN112579192A (zh) * 2019-09-30 2021-03-30 北京京东尚科信息技术有限公司 信息处理方法、装置、系统和计算机可读存储介质
CN111045721B (zh) * 2019-10-29 2023-08-18 平安科技(深圳)有限公司 动态修改Nginx配置参数的方法、装置及存储介质
CN111083054B (zh) * 2019-11-15 2021-11-30 浙江大搜车软件技术有限公司 路由配置处理方法、装置、计算机设备和存储介质
CN111030849B (zh) * 2019-11-21 2023-05-16 新浪技术(中国)有限公司 一种负载均衡配置文件的调整方法及装置
CN114285744A (zh) * 2020-09-17 2022-04-05 北京金山云网络技术有限公司 配置信息的更新方法、装置、服务器及存储介质
CN112463808A (zh) * 2020-11-27 2021-03-09 中国建设银行股份有限公司 目标集群的数据处理方法、装置和服务器
CN115174369A (zh) * 2021-04-02 2022-10-11 深圳市锐速云计算有限公司 基于nginx的网络节点集群调度与自动化部署方法及系统
CN113472901B (zh) * 2021-09-02 2022-01-11 深圳市信润富联数字科技有限公司 负载均衡方法、装置、设备、存储介质及程序产品
CN114327733A (zh) * 2021-12-31 2022-04-12 中科可控信息产业有限公司 开机启动交互界面的动态更新方法、装置、设备及介质
CN114564250B (zh) * 2022-02-28 2023-10-31 天翼安全科技有限公司 一种读取配置方法及装置
CN114584545A (zh) * 2022-03-03 2022-06-03 京东科技信息技术有限公司 数据管理方法、装置、系统、存储介质及电子设备
CN115622884A (zh) * 2022-12-20 2023-01-17 北京白龙马云行科技有限公司 配置数据的变更处理方法、装置和计算机设备
CN116680012B (zh) * 2023-08-01 2023-10-24 浙江春风动力股份有限公司 工业软件配置管理系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103813295A (zh) * 2012-11-13 2014-05-21 中兴通讯股份有限公司 一种自动配置和更新接入点名称参数的方法及装置
CN106775859A (zh) * 2016-12-08 2017-05-31 上海亿账通互联网科技有限公司 灰度发布方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103813295A (zh) * 2012-11-13 2014-05-21 中兴通讯股份有限公司 一种自动配置和更新接入点名称参数的方法及装置
CN106775859A (zh) * 2016-12-08 2017-05-31 上海亿账通互联网科技有限公司 灰度发布方法和系统

Also Published As

Publication number Publication date
CN108829459A (zh) 2018-11-16

Similar Documents

Publication Publication Date Title
CN108829459B (zh) 基于Nginx服务器的配置方法、装置、计算机设备和存储介质
CN110287709B (zh) 用户操作权限控制方法、装置、设备及介质
CN108965381B (zh) 基于Nginx的负载均衡实现方法、装置、计算机设备和介质
CN108667930B (zh) 一种动态数据源配置与自动化切换方法
KR101953942B1 (ko) 전용 캐시 관리 시스템 및 방법
CN112118565A (zh) 多租户服务灰度发布方法、装置、计算机设备和存储介质
CN110764700B (zh) 数据存储方法、装置、计算机设备和存储介质
US8924592B2 (en) Synchronization of server-side cookies with client-side cookies
CN109088764A (zh) 访问请求处理方法及相关设备
US11231912B2 (en) Post-deployment modification of information-technology application using lifecycle blueprint
JP2019517043A (ja) ハイブリッドアプリケーションの自動更新
US9117002B1 (en) Remote browsing session management
CN112291298B (zh) 异构系统的数据传输方法、装置、计算机设备和存储介质
CN110555041A (zh) 数据处理方法、装置、计算机设备和存储介质
CN110213392B (zh) 数据分发方法、装置、计算机设备和存储介质
CN108959385A (zh) 数据库部署方法、装置、计算机设备和存储介质
US20150188999A1 (en) System and method to extend the capabilities of a web browser to improve the web application performance
JP2003058376A (ja) 配信システム、配信サーバとその配信方法、配信プログラム
CN113268308B (zh) 信息处理方法、装置以及存储介质
CN111582824A (zh) 云资源同步方法、装置、设备及存储介质
JP2010272090A (ja) 処理依頼先管理装置、処理依頼先管理プログラムおよび処理依頼先管理方法
CN111107120B (zh) 一种Redis集群的构建方法及系统
CN116566656A (zh) 资源访问方法、装置、设备及计算机存储介质
CN106254411A (zh) 用于提供服务的系统、服务器系统及方法
CN111966744B (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
GR01 Patent grant
GR01 Patent grant