动态修改Nginx配置参数的方法、装置及存储介质制造方法及图纸

技术编号:23889906 阅读:47 留言:0更新日期:2020-04-22 06:02
本发明专利技术提供的动态修改Nginx配置参数的方法,包括步骤:S110:Tomcat获取Web配置界面产生的配置参数,生成配置文件,若所述配置文件与Tomcat中原有的配置文件不一致,则替换原有的配置文件,并生成一个唯一的版本号;S120:Nginx周期性地向Tomcat发起的配置文件及其版本号获取请求,若配置文件的版本号比共享内存里的配置文件的版本号大,将解析后的配置文件和其版本号更新至共享内存;S130:Nginx的工作进程分别周期性地从共享内存提取解析后的配置文件的版本号,若解析后的配置文件的版本号比工作进程内部的配置文件版本号大,则更新工作进程内部配置信息。本发明专利技术实现了nginx配置参数的动态修改,并无需重启工作进程。

【技术实现步骤摘要】
动态修改Nginx配置参数的方法、装置及存储介质
本专利技术涉及服务器处理
,更为具体地,涉及一种动态修改Nginx配置参数的方法、装置及存储介质。
技术介绍
Nginx(enginex)是一个轻量级开源Web服务器软件,作为当前非常流行的HTTP(超文本传输协议)和反向代理Web(WorldWideWeb,互联网)服务器,同时也是一个IMAP(InternetMailAccessProtocol,交互式邮件存取协议)、POP3(PostOfficeProtocol3,邮局协议的第3个版本)、SMTP(SimpleMailTransferProtocol,简单邮件传输协议)代理服务器,丰富灵活的参数配置机制保证了Nginx极其强大的模块可扩展性及功能。Nginx是多进程架构,单台主机上的nginx进程有1个管理进程和多个相互独立的工作进程,一般工作进程个数等于cpu的核数,管理进程接受客户端请求,转交给工作进程处理,从而很好地利用cpu的计算能力。管理进程并不处理客户端网络请求,客户端网络请求是由工作进程来处理,只有其中一个工作进程有可能来处理这个请求,而管理进程负责管理这些工作进程,比如当一个工作进程退出(异常情况下),负责启动新的工作进程,又比如通知所有的工作进程平滑的退出等。每次更改Nginx配置,都必须先手动修改Nginx配置文件,配置文件替换后,再重新加载配置文件,根据新的配置文件对Nginx进行配置,即管理进程在确定根据原有配置文件中的配置信息创建的原有工作进程业务服务结束时,然后根据新的配置文件中的配置信息,创建新的工作进程,启用新的工作进程,并关闭原有工作进程。尽管Nginx重新加载配置文件过程中大部分场景下管理进程没有停止,不会发生漏掉客户端请求的情况。但还存在以下问题:1、每次更改配置后,管理进程都要基于新的配置文件重新创建工作进程,关闭原有工作进程,这个过程较为繁琐复杂、耗时,增加管理进程的工作量。2、编辑Nginx配置文件,需要熟悉Nginx的开发运维人员才能修改,需要具备一定的专业知识,且直接修改Nginx配置文件,容易带来语法、文字上的错误,造成配置文件不可用。
技术实现思路
鉴于上述问题,本专利技术的目的是提供一种动态修改Nginx配置参数的方法、装置及存储介质。实现了nginx配置参数的动态修改,并无需重启工作进程。根据本专利技术的一个方面,提供了一种动态修改Nginx配置参数的方法,包括如下步骤:S110:Tomcat根据Web配置界面产生的配置参数生成配置文件,并将所述配置文件与Tomcat中原有的配置文件进行对比,若所述配置文件与所述原有的配置文件不一致,则以所述配置文件替换所述原有的配置文件,并为所述配置文件生成一个唯一的版本号,将所述版本号和所述配置文件关联存入数据库;S120:Nginx周期性地向所述Tomcat发起配置文件获取http请求,获取所述配置文件并提取其版本号,比较所提取的版本号与共享内存中的配置文件的版本号,若所提取的版本号比所述共享内存里的配置文件的版本号大,则解析所述配置文件,并将解析后的所述配置文件和其版本号更新至共享内存;S130:所述Nginx的工作进程周期性地从所述共享内存提取所述解析后的配置文件的版本号,并比较所述解析后的配置文件的版本号与所述工作进程内部的配置文件版本号,若所述解析后的配置文件的版本号比所述工作进程内部的配置文件版本大,则工作进程提取所述共享内存中的所述解析后的配置文件及其版本号,以更新所述工作进程内部对应的配置信息变量。进一步,所述S110中,所述Tomcat在根据Web配置界面产生的配置参数生成配置文件之前,所述Tomcat接收所述Web配置界面发生改变的配置参数和原有的未发生变化的配置参数,共同生成一个配置文件;其中,所述Web配置界面产生的配置参数为所述Web配置界面发生改变的配置参数和原有的未发生改变的配置参数;所述Web配置界面为根据配置参数的类型设置的Web配置界面,每种类型的配置参数均配有中文说明。进一步,在S110中,所述原有的配置文件为上一次配置时生成的配置文件,Tomcat会对每一次生成的配置文件与原有的配置文件进行对比,如果与原有的配置文件一致,则不生成版本号;如果与原有的配置文件不一致,则递增生成一个和该配置文件对应的唯一的版本号,该版本号会同配置文件一同替换Tomcat中原有的配置文件和其对应的版本号。进一步,在S120中,每隔设定的周期时间,所述Nginx的一个工作进程向所述Tomcat发起配置文件获取http请求,所述Tomcat接收到所述http请求后,将所述配置文件和其版本号发送到所述工作进程,所述工作进程提取所述版本号。进一步,在S120中,所述工作进程提取所述配置文件的版本号后,与所述共享内存中已有的配置文件版本号比较,若所述配置文件的版本号比所述共享内存中已有的配置文件版本号大,则解析所述配置文件,并将所述解析后的配置文件和其版本号更新至共享内存,替换共享内存中已有的配置文件和其版本号;若所述配置文件的版本号不比共享内存中已有的配置文件版本号大,则不解析所述配置文件,不将所述配置文件和其版本号更新至共享内存。进一步,在S130中,所有工作进程都是相互独立的,每个工作进程都具有向所述共享内存提取解析后的配置文件的版本号的周期时间,每个工作进程每隔设定的周期时间,就会分别向所述共享内存提取所述解析后的配置文件的版本号,比较所述解析后的配置文件的版本号与所述工作进程内部的配置文件版本号,若所述解析后的配置文件的版本号比所述工作进程内部的配置文件版本大,则工作进程提取所述共享内存中的所述解析后的配置文件和其版本号;若所述解析后的配置文件的版本号不比所述工作进程内部的配置文件版本号大,则工作进程不提取所述共享内存中的所述解析后的配置文件,以原有的配置信息继续运行。所述S130中更新工作进程内部对应的配置信息变量的方法包括:将所述工作进程提取的所述共享内存中所述解析后配置文件赋值给工作进程内部对应的配置信息变量。根据本专利技术的另一方面,提供了一种动态修改Nginx配置参数的系统,包括:Web配置界面单元,用于产生配置参数;Tomcat单元,用于获取Web配置界面单元产生的配置参数,根据所述配置参数生成配置文件,并将所述配置文件与Tomcat单元中原有的配置文件进行对比,若所述配置文件与所述原有的配置文件不一致,则所述配置文件替换原有的配置文件,并为所述配置文件生成一个唯一的版本号,将所述版本号和对应的配置文件关联;数据库单元,用于存储所述版本号和对应的配置文件;Nginx单元,用于每隔设定的周期时间,所述Nginx单元的一个工作进程向所述Tomcat单元发起配置文件获取http请求,所述工作进程提取所述配置文件的版本号后,与共享内存单元中已有的配置文件版本号比较,若所述配置文件的版本号比共享内存单元中已有的配置文件版本号大,则解析所述配置文件,并将所述解析后的配置文件和本文档来自技高网
...

【技术保护点】
1.一种动态修改Nginx配置参数的方法,其特征在于,包括如下步骤:/nS110:Tomcat根据Web配置界面产生的配置参数生成配置文件,并将所述配置文件与Tomcat中原有的配置文件进行对比,若所述配置文件与所述原有的配置文件不一致,则以所述配置文件替换所述原有的配置文件,并为所述配置文件生成一个唯一的版本号,将所述版本号和所述配置文件关联存入数据库;/nS120:Nginx周期性地向所述Tomcat发起配置文件获取http请求,获取所述配置文件并提取其版本号,比较所提取的版本号与共享内存中的配置文件的版本号,若所提取的版本号比所述共享内存里的配置文件的版本号大,则解析所述配置文件,并将解析后的所述配置文件和其版本号更新至共享内存;/nS130:所述Nginx的工作进程周期性地从所述共享内存提取所述解析后的配置文件的版本号,并比较所述解析后的配置文件的版本号与所述工作进程内部的配置文件版本号,若所述解析后的配置文件的版本号比所述工作进程内部的配置文件版本大,则工作进程提取所述共享内存中的所述解析后的配置文件及其版本号,以更新所述工作进程内部对应的配置信息变量。/n

【技术特征摘要】
1.一种动态修改Nginx配置参数的方法,其特征在于,包括如下步骤:
S110:Tomcat根据Web配置界面产生的配置参数生成配置文件,并将所述配置文件与Tomcat中原有的配置文件进行对比,若所述配置文件与所述原有的配置文件不一致,则以所述配置文件替换所述原有的配置文件,并为所述配置文件生成一个唯一的版本号,将所述版本号和所述配置文件关联存入数据库;
S120:Nginx周期性地向所述Tomcat发起配置文件获取http请求,获取所述配置文件并提取其版本号,比较所提取的版本号与共享内存中的配置文件的版本号,若所提取的版本号比所述共享内存里的配置文件的版本号大,则解析所述配置文件,并将解析后的所述配置文件和其版本号更新至共享内存;
S130:所述Nginx的工作进程周期性地从所述共享内存提取所述解析后的配置文件的版本号,并比较所述解析后的配置文件的版本号与所述工作进程内部的配置文件版本号,若所述解析后的配置文件的版本号比所述工作进程内部的配置文件版本大,则工作进程提取所述共享内存中的所述解析后的配置文件及其版本号,以更新所述工作进程内部对应的配置信息变量。


2.如权利要求1所述的动态修改Nginx配置参数的方法,其特征在于,所述S110中,所述Tomcat在根据Web配置界面产生的配置参数生成配置文件之前,
所述Tomcat接收所述Web配置界面发生改变的配置参数和原有的未发生变化的配置参数,共同生成一个配置文件;其中,
所述Web配置界面产生的配置参数为所述Web配置界面发生改变的配置参数和原有的未发生改变的配置参数;所述Web配置界面为根据配置参数的类型设置的Web配置界面,每种类型的配置参数均配有中文说明。


3.如权利要求1所述的动态修改Nginx配置参数的方法,其特征在于,在S110中,
所述原有的配置文件为上一次配置时生成的配置文件,Tomcat会对每一次生成的配置文件与原有的配置文件进行对比,如果与原有的配置文件一致,则不生成版本号;如果与原有的配置文件不一致,则递增生成一个和该配置文件对应的唯一的版本号,该版本号会同配置文件一同替换Tomcat中原有的配置文件和其对应的版本号。


4.如权利要求1所述的动态修改Nginx配置参数的方法,其特征在于,在S120中,
每隔设定的周期时间,所述Nginx的一个工作进程向所述Tomcat发起配置文件获取http请求,所述Tomcat接收到所述http请求后,将所述配置文件和其版本号发送到所述工作进程,所述工作进程提取所述版本号。


5.如权利要求4所述的动态修改Nginx配置参数的方法,其特征在于,在S120中,
所述工作进程提取所述配置文件的版本号后,与所述共享内存中已有的配置文件版本号比较,若所述配置文件的版本号比所述共享内存中已有的配置文件版本号大,则解析所述配置文件,并将所述解析后的配置文件和其版本号更新至共享内存,替换共享内存中已有的配置文件和其版本号;若所述配置文件的版本号不比共享内存...

【专利技术属性】
技术研发人员:雷林凯
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1