CN111045721A - 动态修改Nginx配置参数的方法、装置及存储介质 - Google Patents
动态修改Nginx配置参数的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111045721A CN111045721A CN201911037110.4A CN201911037110A CN111045721A CN 111045721 A CN111045721 A CN 111045721A CN 201911037110 A CN201911037110 A CN 201911037110A CN 111045721 A CN111045721 A CN 111045721A
- Authority
- CN
- China
- Prior art keywords
- configuration file
- version number
- configuration
- shared memory
- nginx
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 193
- 230000008569 process Effects 0.000 claims abstract description 164
- 239000000284 extract Substances 0.000 claims abstract description 37
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012986 modification Methods 0.000 abstract description 4
- 230000004048 modification Effects 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101001094649 Homo sapiens Popeye domain-containing protein 3 Proteins 0.000 description 1
- 101000608234 Homo sapiens Pyrin domain-containing protein 5 Proteins 0.000 description 1
- 101000578693 Homo sapiens Target of rapamycin complex subunit LST8 Proteins 0.000 description 1
- 102100027802 Target of rapamycin complex subunit LST8 Human genes 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供的动态修改Nginx配置参数的方法,包括步骤:S110:Tomcat获取Web配置界面产生的配置参数,生成配置文件,若所述配置文件与Tomcat中原有的配置文件不一致,则替换原有的配置文件,并生成一个唯一的版本号;S120:Nginx周期性地向Tomcat发起的配置文件及其版本号获取请求,若配置文件的版本号比共享内存里的配置文件的版本号大,将解析后的配置文件和其版本号更新至共享内存;S130:Nginx的工作进程分别周期性地从共享内存提取解析后的配置文件的版本号,若解析后的配置文件的版本号比工作进程内部的配置文件版本号大,则更新工作进程内部配置信息。本发明实现了nginx配置参数的动态修改,并无需重启工作进程。
Description
技术领域
本发明涉及服务器处理技术领域,更为具体地,涉及一种动态修改Nginx配置参数的方法、装置及存储介质。
背景技术
Nginx(engine x)是一个轻量级开源Web服务器软件,作为当前非常流行的HTTP(超文本传输协议)和反向代理Web(World Wide Web,互联网)服务器,同时也是一个IMAP(Internet Mail Access Protocol,交互式邮件存取协议)、POP3(Post Office Protocol3,邮局协议的第3个版本)、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)代理服务器,丰富灵活的参数配置机制保证了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请求,所述工作进程提取所述配置文件的版本号后,与共享内存单元中已有的配置文件版本号比较,若所述配置文件的版本号比共享内存单元中已有的配置文件版本号大,则解析所述配置文件,并将所述解析后的配置文件和其版本号更新至共享内存单元;工作进程分别周期性地从共享内存单元提取所述解析后的配置文件的版本号,并比较所述解析后的配置文件的版本号与所述工作进程内部的配置文件版本号,若所述解析后的配置文件的版本号比所述工作进程内部的配置文件版本大,则工作进程提取共享内存中的所述解析后的配置文件及其版本号,以更新工作进程内部的配置信息变量;
共享内存单元,用于存储最新的解析后的配置文件及其版本号。
本发明还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被处理器执行时实现上述的动态修改Nginx配置参数的方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括动态修改Nginx配置参数程序,所述动态修改Nginx配置参数程序被处理器执行时,实现上述的动态修改Nginx配置参数方法的步骤。
利用上述根据本发明的动态修改Nginx配置参数的方法,将每个配置文件赋予一个版本号,共享内存中存放最新的配置文件和其版本号,各个工作进程周期性地主动获取共享内存中的最新配置文件的版本号,并通过比较版本号大小,判断是否进行配置文件更新,若需要更新配置,将共享内存里的信息赋值给工作进程内部对应的配置信息变量。实现了Nginx配置参数的动态修改,实现了工作进程无需重新创建和重启,就能使新配置参数生效。整个过程高效、可靠性高,对客户端业务零影响,适用于访问量大且可靠性要求高的业务场景。
具有易于理解的配置界面、使参数配置更加简单化,参数内容正确性得到了保证,不会带来配置文件语法、内容上的错误;且配置参数保存到了数据库,配置内容尽管没有写入Nginx的配置文件,但内容同样不会丢失。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
图1示出了根据本发明实施例1的动态修改Nginx配置参数的方法的流程图;
图2示出了根据本发明实施例2的动态修改Nginx配置参数的系统的逻辑结构示意图;
图3示出了根据本发明实施例3的电子装置的逻辑结构示意图;
图4示出了根据本发明实施例1的针对bucket的限流参数设置的Web配置界面;
图5示出了根据本发明实施例1的针对IP地址的限流参数设置的Web配置界面;
图6示出了根据本发明实施例1的针对bucket的缓存设置的Web配置界面。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。
名词解释:Tomcat(Apache Tomcat)是基于java servlet(Java语言中在服务器上运行的小型应用程序)的web容器,Tomcat本身可作为一个单独的Web服务器使用,用于获取动态资源,属于轻量级应用服务器。本申请Tomcat为Web配置界面的后端服务进程,用于持久化接收Web配置界面的配置参数、接收和响应http请求(从客户端到服务器端的请求消息)。
Nginx进程具有mutex(互斥锁),即Nginx的每个工作进程在执行http请求之前都需要先获取互斥锁,以确保同一时刻就只会有一个工作进程发起http请求。如果某个工作进程获取到互斥锁,这个工作进程就发起http请求;获取不到互斥锁的工作进程就放弃执行发起http请求,这样,保证同一时刻就只会有一个工作进程发起http请求,以免发送请求阻塞。
以下将结合附图对本发明的具体实施例进行详细描述。
实施例1
图1示出了根据本发明实施例1的动态修改Nginx配置参数的方法的流程图。
如图1所示,本实施例提供的动态修改Nginx配置参数的方法,包括如下步骤:
S110:Tomcat获取Web配置界面产生的配置参数,根据配置参数生成配置文件,并将配置文件与Tomcat中原有的配置文件进行对比,若配置文件与原有的配置文件不一致,则配置文件替换原有的配置文件,并为配置文件生成一个唯一的版本号,将版本号和对应的配置文件关联存入数据库。
S120:Nginx周期性地向Tomcat发起的配置文件获取http请求(从客户端到服务器端的请求消息),获取配置文件并提取其版本号,比较版本号与共享内存中的配置文件的版本号,若配置文件的版本号比共享内存里的配置文件的版本号大,则解析配置文件,并将解析后的配置文件和其版本号更新至共享内存。
S130:Nginx的工作进程分别周期性地从共享内存提取解析后的配置文件的版本号,并比较解析后的配置文件的版本号与工作进程内部的配置文件版本号,若解析后的配置文件的版本号比工作进程内部的配置文件版本大,则工作进程提取共享内存中的解析后的配置文件及其版本号,以更新工作进程内部对应的配置信息变量。
本申请中当配置参数改变后,赋予配置文件一个递增的版本号,通过比较配置文件的版本号,将最新的配置文件解析后放入共享内存,每个工作进程直接周期性的提取共享内存中的配置文件;不需像现有技术一样每次更改配置后,管理进程都要基于新的配置文件重新创建所有的工作进程,然后解析配置文件。
在步骤S110中,
Web配置界面产生的配置参数为Web配置界面发生改变的配置参数和未发生改变的配置参数。Tomcat中原有的配置文件为上一次配置时生成的配置文件。
Tomcat接收Web配置界面发生改变的配置参数和原有的未发生变化的配置参数,共同生成一个配置文件;Tomcat会对每一次生成的配置文件与原有的配置文件进行对比,如果与原有的配置文件一致,则不生成版本号;如果与原有的配置文件不一致,则递增生成一个和该配置文件对应的唯一的版本号,该版本号会同配置文件一同替换Tomcat中原有的配置文件和其对应的版本号。
在Web配置界面新修改的配置参数与上次配置相同时,可判断新生成的配置文件与Tomcat中的原有配置文件一致,不用替换Tomcat中原有的配置文件,保证了Tomcat中的配置文件都是最新发生改变的,也不用赋予版本号,可以忽略本次配置参数,无需重新配置Nginx,防止nginx做多余的解析工作。
与原有的配置文件不一致的配置文件也就是新的配置文件连同版本号由Tomcat存入数据库,以使配置的内容不丢失,与原有的配置文件进一致的配置文件不存入数据库。
Web配置界面,根据配置参数的类型设置,每种类型的配置参数均采用中文说明。
配置参数的类型,至少包括3种(1)针对bucket(存储空间)的限流设置,此类型对应的参数有下载速率设置、文件大小设置、最大连接数设置、最大并发数设置、令牌桶大小设置等;(2)针对IP地址的限流设置,此类型对应的参数有下载速率设置、最大连接数设置、最大并发数设置、令牌桶大小设置等;(3)针对bucket的缓存设置,此类型对应的参数有缓存文件大小设置、缓存失效时间设置等。
针对bucket的限流参数设置的Web配置界面如图4所示,针对IP地址的限流参数设置的Web配置界面如图5所示,针对bucket的缓存设置的Web配置界面如图6所示。
为了便于运维人员操作,Web配置界面可以为可视化的Nginx参数配置界面,每种类型的配置参数均具有中文说明。可根据配置需求,定制可视化的Web配置界面,界面上提供详细的参数说明,可设定参数内容范围、格式等,无需专业的Nginx运维人员也可设置Nginx相关参数。
运维人员可以根据业务的需求选择配置参数的类型,根据配置参数的类型更改与该类型对应的参数。
在步骤S120中:
Nginx周期性的向Tomcat发起配置文件获取http请求,获取配置文件并提取其版本号,过程中:每隔设定的周期时间,Nginx的一个工作进程向Tomcat发起配置文件获取http请求,Tomcat接收到http请求后,将配置文件和其版本号发送到工作进程,工作进程提取版本号。
上述周期可以根据具体的业务需求灵活设定,比如,可以将周期的设定时间设定为10s。
设置一个共享内存用于放置最新的解析后的配置文件及其版本号。
工作进程提取配置文件的版本号后,与共享内存中已有的配置文件版本号比较,若配置文件的版本号比共享内存中已有的配置文件版本号大,则解析配置文件,并将解析后的配置文件和其版本号更新至共享内存,替换共享内存中已有的配置文件和其版本号;若配置文件的版本号不比共享内存中已有的配置文件版本号大,则不解析配置文件,不将配置文件和其版本号更新至共享内存。
Nginx周期性向Tomcat发起配置文件获取http请求,通过比较版本号,来判断获取的配置文件是否是新的配置文件,如果是新的配置文件才进行解析并存入共享内存。这样防止如果Web配置界面长时间没有被修改,Tomcat多个周期内没有接收Web配置界面发送的新的配置参数时,Nginx获取到的配置文件与上周期相同,做多余的解析工作,也不用替换共享内存中配置文件。
在步骤S130中:
所有工作进程都是相互独立的,Nginx的每个工作进程都具有向共享内存提取解析后的配置文件的版本号的周期时间,每个工作进程分别每隔设定的周期时间,就会分别向共享内存提取解析后的配置文件的版本号,比较解析后的配置文件的版本号与工作进程内部的配置文件版本号,若解析后的配置文件的版本号比工作进程内部的配置文件版本大,则工作进程提取共享内存中的解析后的配置文件和其版本号,以更新工作进程内部对应的配置信息变量;若解析后的配置文件的版本号不比工作进程内部的配置文件版本号大,则工作进程不提取共享内存中的解析后的配置文件,以原有的配置信息继续运行。
设定的周期时间可以设定为5s,即每隔5s就会有工作进程向共享内存提取配置文件。
更新工作进程内部对应的配置信息变量的过程可为:将工作进程提取的共享内存中解析后配置文件赋值给工作进程内部对应的配置信息变量。
每个工作进程分别周期性的向共享内存提取解析后的配置文件的版本号,通过比较提取的版本号和工作进程内部的版本号大小,来判断共享内存中的配置文件是否是新的配置文件,如果是新的配置文件才进行工作进程内部配置文件更新。这样如果共享内存中的配置文件长时间内没有更新,工作进程不会提取到与上周期相同的配置文件,防止做多余的配置文件替换工作。
应用本发明的工作过程举例如下:
例如,Web配置界面的针对IP地址的限流类型的其中一个参数“最大连接数(r)”被更改,点击了确定键后,那么被更改的参数“最大连接数(r)”和未被更改的参数以及其他类型的未被更改的参数,共同输入Tomcat中,形成一个配置文件,该配置文件相对Tomcat中原有的配置文件有所改变,因此对该配置文件递增生成一个和该配置文件对应的唯一的版本号x+1,该配置文件和其版本号x+1替换Tomcat中原有的配置文件和其对应的版本号x,并将该配置文件和其版本号x+1存入数据库。保证了Tomcat中的配置文件都是最新发生改变的。
每隔设定的周期时间10s,Nginx的某一个工作进程就会向Tomcat发起配置文件获取http请求,Tomcat接收到http请求后,将该配置文件和其版本号x+1发送到工作进程,工作进程提取版本号x+1。工作进程提取该配置文件的版本号x+1后,与共享内存中已有的配置文件版本号x比较,该配置文件的版本号x+1比共享内存中已有的配置文件版本号x大,因此解析该配置文件,并将解析后的该配置文件和其版本号x+1更新至共享内存,替换共享内存中已有的配置文件和其版本号x;
如果又隔了若干周期,Nginx的某一个工作进程再次向Tomcat发起配置文件获取http请求,Tomcat内的配置文件在这期间没有更新,则将该配置文件和其版本号x+1又发送到工作进程,工作进程提取版本号x+1。工作进程提取该配置文件的版本号x+1后,与共享内存中已有的配置文件版本号x+1比较,该配置文件的版本号x+1等于共享内存中已有的配置文件版本号x+1,说明Nginx没有获取到新的配置文件,则不用解析该配置文件,不用将该配置文件和其版本号x+1更新至共享内存。保证了Nginx每次解析的都是最新的配置文件。
Nginx的每个工作进程每隔设定的周期时间5s,就会向共享内存提取解析后的配置文件的版本号x+1,比较解析后的配置文件的版本号x+1比工作进程内部的配置文件版本号x大,则工作进程提取共享内存中的解析后的配置文件及其版本号x+1来替换工作进程内部的配置文件的版本号x,将配置文件x+1赋值给工作进程内部对应的配置信息变量。
如果又隔了若干周期,共享内存内的解析后的配置文件没有更新,还是版本号x+1和对应的配置文件,工作进程向共享内存中提取的版本号还是x+1,比较x+1与工作进程内部的配置文件版本号x+1相等,则工作进程中的配置文件及其版本号x+1不用替换。保证了工作进程每次替换的配置文件都是最新的。
实施例2
一种动态修改Nginx配置参数的系统,包括:
Web配置界面单元,用于产生配置参数;
Tomcat单元,用于获取Web配置界面单元产生的配置参数,根据配置参数生成配置文件,并将配置文件与Tomcat单元中原有的配置文件进行对比,若配置文件与原有的配置文件不一致,则配置文件替换原有的配置文件,并为配置文件生成一个唯一的版本号,将版本号和对应的配置文件关联;
数据库单元,用于存储版本号和对应的配置文件;
Nginx单元,用于每隔设定的周期时间,Nginx单元的一个工作进程向Tomcat单元发起配置文件获取http请求,工作进程提取配置文件的版本号后,与共享内存单元中已有的配置文件版本号比较,若配置文件的版本号比共享内存单元中已有的配置文件版本号大,则解析配置文件,并将解析后的配置文件和其版本号更新至共享内存单元;工作进程分别周期性地从共享内存单元提取解析后的配置文件的版本号,并比较解析后的配置文件的版本号与工作进程内部的配置文件版本号,若解析后的配置文件的版本号比工作进程内部的配置文件版本大,则工作进程提取共享内存中的解析后的配置文件及其版本号,以更新工作进程内部的配置信息变量;
共享内存单元,用于存储最新的解析后的配置文件及其版本号。
实施例3
一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,计算机程序被处理器执行时实现上述实施例1中的动态修改Nginx配置参数的方法。
其中的计算机程序包括配置文件关联存储程序、共享内存更新程序以及工作进程更新程序。这些程序被处理器执行时,所能够实现的操作如下:
配置文件关联存储程序,该配置文件关联存储程序被处理器执行时,Tomcat根据Web配置界面产生的配置参数生成配置文件,并将所述配置文件与Tomcat中原有的配置文件进行对比,若所述配置文件与所述原有的配置文件不一致,则以所述配置文件替换所述原有的配置文件,并为所述配置文件生成一个唯一的版本号,将所述版本号和所述配置文件关联存入数据库;
共享内存更新程序,该共享内存更新程序被处理器执行时,Nginx周期性地向所述Tomcat发起配置文件获取http请求,获取配置文件并提取其版本号,比较所提取的版本号与共享内存中的配置文件的版本号,若所提取的版本号比所述共享内存里的配置文件的版本号大,则解析所述配置文件,并将解析后的所述配置文件和其版本号更新至共享内存;
工作进程更新程序,该工作进程更新程序被处理器执行时,Nginx的工作进程周期性地从所述共享内存提取所述解析后的配置文件的版本号,并比较所述解析后的配置文件的版本号与所述工作进程内部的配置文件版本号,若所述解析后的配置文件的版本号比所述工作进程内部的配置文件版本大,则工作进程提取所述共享内存中的所述解析后的配置文件及其版本号,以更新所述工作进程内部对应的配置信息变量。
实施例4
一种计算机可读存储介质,计算机可读存储介质中包括动态修改Nginx配置参数程序,动态修改Nginx配置参数程序被处理器执行时,实现实施例1中的动态修改Nginx配置参数方法的步骤。该动态修改Nginx配置参数程序可以包括上述配置文件关联存储程序、共享内存更新程序以及工作进程更新程序。
如上参照图1、图2和图3以示例的方式描述根据本发明的动态修改Nginx配置参数方法及装置。但是,本领域技术人员应当理解,对于上述本发明所提出的动态修改Nginx配置参数方法及装置,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
Claims (10)
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中,
所述工作进程提取所述配置文件的版本号后,与所述共享内存中已有的配置文件版本号比较,若所述配置文件的版本号比所述共享内存中已有的配置文件版本号大,则解析所述配置文件,并将所述解析后的配置文件和其版本号更新至共享内存,替换共享内存中已有的配置文件和其版本号;若所述配置文件的版本号不比共享内存中已有的配置文件版本号大,则不解析所述配置文件,不将所述配置文件和其版本号更新至共享内存。
6.如权利要求1所述的动态修改Nginx配置参数的方法,其特征在于,在S130中,
所有工作进程都是相互独立的,每个工作进程都具有向所述共享内存提取解析后的配置文件的版本号的周期时间,每个工作进程每隔设定的周期时间,就会分别向所述共享内存提取所述解析后的配置文件的版本号,比较所述解析后的配置文件的版本号与所述工作进程内部的配置文件版本号,若所述解析后的配置文件的版本号比所述工作进程内部的配置文件版本大,则工作进程提取所述共享内存中的所述解析后的配置文件和其版本号;若所述解析后的配置文件的版本号不比所述工作进程内部的配置文件版本号大,则工作进程不提取所述共享内存中的所述解析后的配置文件,以原有的配置信息继续运行。
7.如权利要求1所述的动态修改Nginx配置参数的方法,其特征在于,所述S130中更新工作进程内部对应的配置信息变量的方法包括:将所述工作进程提取的所述共享内存中所述解析后配置文件赋值给工作进程内部对应的配置信息变量。
8.一种动态修改Nginx配置参数的系统,其特征在于,包括:
Web配置界面单元,用于产生配置参数;
Tomcat单元,用于获取Web配置界面单元产生的配置参数,根据所述配置参数生成配置文件,并将所述配置文件与Tomcat单元中原有的配置文件进行对比,若所述配置文件与所述原有的配置文件不一致,则所述配置文件替换原有的配置文件,并为所述配置文件生成一个唯一的版本号,将所述版本号和对应的配置文件关联;
数据库单元,用于存储所述版本号和对应的配置文件;
Nginx单元,用于每隔设定的周期时间,所述Nginx单元的一个工作进程向所述Tomcat单元发起配置文件获取http请求,所述工作进程提取所述配置文件的版本号后,与共享内存单元中已有的配置文件版本号比较,若所述配置文件的版本号比共享内存单元中已有的配置文件版本号大,则解析所述配置文件,并将所述解析后的配置文件和其版本号更新至共享内存单元;工作进程分别周期性地从共享内存单元提取所述解析后的配置文件的版本号,并比较所述解析后的配置文件的版本号与所述工作进程内部的配置文件版本号,若所述解析后的配置文件的版本号比所述工作进程内部的配置文件版本大,则工作进程提取共享内存中的所述解析后的配置文件及其版本号,以更新工作进程内部的配置信息变量;
共享内存单元,用于存储最新的解析后的配置文件及其版本号。
9.一种电子装置,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的动态修改Nginx配置参数的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括动态修改Nginx配置参数程序,所述动态修改Nginx配置参数程序被处理器执行时,实现如权利要求1至7中任一项所述的动态修改Nginx配置参数方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037110.4A CN111045721B (zh) | 2019-10-29 | 2019-10-29 | 动态修改Nginx配置参数的方法、装置及存储介质 |
PCT/CN2019/118290 WO2021082081A1 (zh) | 2019-10-29 | 2019-11-14 | 动态修改Nginx配置参数的方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037110.4A CN111045721B (zh) | 2019-10-29 | 2019-10-29 | 动态修改Nginx配置参数的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111045721A true CN111045721A (zh) | 2020-04-21 |
CN111045721B CN111045721B (zh) | 2023-08-18 |
Family
ID=70232598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911037110.4A Active CN111045721B (zh) | 2019-10-29 | 2019-10-29 | 动态修改Nginx配置参数的方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111045721B (zh) |
WO (1) | WO2021082081A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346761A (zh) * | 2020-10-27 | 2021-02-09 | 长沙市到家悠享网络科技有限公司 | 前端资源上线方法、设备、系统及存储介质 |
CN112506585A (zh) * | 2020-12-28 | 2021-03-16 | 浪潮云信息技术股份公司 | 一种基于Java动态改变Nginx配置的系统及方法 |
CN112702195A (zh) * | 2020-12-18 | 2021-04-23 | 深圳奥哲网络科技有限公司 | 网关配置方法、电子设备及计算机可读存储介质 |
CN114465882A (zh) * | 2021-12-24 | 2022-05-10 | 天翼云科技有限公司 | 一种网关配置加载、获取方法、装置及计算机设备 |
CN114785686A (zh) * | 2022-04-22 | 2022-07-22 | 北京金山云网络技术有限公司 | 配置更新方法、装置和电子设备 |
CN114866413A (zh) * | 2021-01-18 | 2022-08-05 | 网宿科技股份有限公司 | 一种动态配置变量的方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485766A (zh) * | 2021-07-07 | 2021-10-08 | 上海中通吉网络技术有限公司 | 基于salt和nginx反向代理集群管理方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547576A (zh) * | 2015-09-16 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 配置文件的获取方法及装置 |
CN107357571A (zh) * | 2017-06-20 | 2017-11-17 | 珠海格力电器股份有限公司 | 设备组件程序的维护方法、系统及组件服务器 |
CN108712457A (zh) * | 2018-04-03 | 2018-10-26 | 苏宁易购集团股份有限公司 | 基于Nginx反向代理的后端服务器动态负载调整方法及装置 |
CN109347675A (zh) * | 2018-10-31 | 2019-02-15 | 新华三大数据技术有限公司 | 服务器配置方法、装置以及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457846B2 (en) * | 2001-10-05 | 2008-11-25 | International Business Machines Corporation | Storage area network methods and apparatus for communication and interfacing with multiple platforms |
CN106599085A (zh) * | 2016-11-25 | 2017-04-26 | 努比亚技术有限公司 | web系统配置文件的自动刷新方法及装置 |
CN108829459B (zh) * | 2018-05-31 | 2023-03-21 | 康键信息技术(深圳)有限公司 | 基于Nginx服务器的配置方法、装置、计算机设备和存储介质 |
CN109450708B (zh) * | 2018-12-14 | 2021-09-07 | 北京明朝万达科技股份有限公司 | 一种Nginx动态配置方法及系统 |
-
2019
- 2019-10-29 CN CN201911037110.4A patent/CN111045721B/zh active Active
- 2019-11-14 WO PCT/CN2019/118290 patent/WO2021082081A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547576A (zh) * | 2015-09-16 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 配置文件的获取方法及装置 |
CN107357571A (zh) * | 2017-06-20 | 2017-11-17 | 珠海格力电器股份有限公司 | 设备组件程序的维护方法、系统及组件服务器 |
CN108712457A (zh) * | 2018-04-03 | 2018-10-26 | 苏宁易购集团股份有限公司 | 基于Nginx反向代理的后端服务器动态负载调整方法及装置 |
CN109347675A (zh) * | 2018-10-31 | 2019-02-15 | 新华三大数据技术有限公司 | 服务器配置方法、装置以及电子设备 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346761A (zh) * | 2020-10-27 | 2021-02-09 | 长沙市到家悠享网络科技有限公司 | 前端资源上线方法、设备、系统及存储介质 |
CN112346761B (zh) * | 2020-10-27 | 2024-05-17 | 长沙市到家悠享网络科技有限公司 | 前端资源上线方法、设备、系统及存储介质 |
CN112702195A (zh) * | 2020-12-18 | 2021-04-23 | 深圳奥哲网络科技有限公司 | 网关配置方法、电子设备及计算机可读存储介质 |
CN112506585A (zh) * | 2020-12-28 | 2021-03-16 | 浪潮云信息技术股份公司 | 一种基于Java动态改变Nginx配置的系统及方法 |
CN112506585B (zh) * | 2020-12-28 | 2023-07-25 | 浪潮云信息技术股份公司 | 一种基于Java动态改变Nginx配置的系统及方法 |
CN114866413A (zh) * | 2021-01-18 | 2022-08-05 | 网宿科技股份有限公司 | 一种动态配置变量的方法及系统 |
CN114465882A (zh) * | 2021-12-24 | 2022-05-10 | 天翼云科技有限公司 | 一种网关配置加载、获取方法、装置及计算机设备 |
CN114785686A (zh) * | 2022-04-22 | 2022-07-22 | 北京金山云网络技术有限公司 | 配置更新方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111045721B (zh) | 2023-08-18 |
WO2021082081A1 (zh) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111045721A (zh) | 动态修改Nginx配置参数的方法、装置及存储介质 | |
US11659020B2 (en) | Method and system for real-time modeling of communication, virtualization and transaction execution related topological aspects of monitored software applications and hardware entities | |
KR102501968B1 (ko) | 애플릿 처리 방법, 서버, 기기, 저장 매체 및 컴퓨터 프로그램 | |
CN111949633B (zh) | 一种基于并行流处理的ict系统运行日志分析方法 | |
US9690562B2 (en) | Detecting computing processes requiring reinitialization after a software package update | |
CN101821728B (zh) | 批处理系统 | |
CN110895484A (zh) | 任务调度方法及装置 | |
CN112579289B (zh) | 一种可智能调度的分布式解析引擎方法及装置 | |
CN116016702B (zh) | 一种应用可观测数据采集处理方法、装置及介质 | |
US9239716B1 (en) | Usage-based program slicing | |
CN110231956B (zh) | 应用程序版本构建的方法、系统及装置 | |
CN109218054B (zh) | 终端动态配置、相应服务器实现方法、装置和存储介质 | |
CN111679886A (zh) | 异构计算资源调度方法、系统、电子设备及存储介质 | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
CN111400125A (zh) | Java进程的内存溢出监控方法、装置、设备及存储介质 | |
CN110895488A (zh) | 任务调度方法及装置 | |
CN108829425A (zh) | 一种针对国产操作系统上的应用软件在线升级管控方法 | |
CN111371585A (zh) | 用于cdn节点的配置方法及装置 | |
US20200036621A1 (en) | Website load test controls | |
CN115001967A (zh) | 一种数据采集方法、装置、电子设备及存储介质 | |
US11216352B2 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
US20110106754A1 (en) | Tuning ldap server and directory database | |
CN110365809B (zh) | 分布式服务器地址配置系统及方法 | |
CN110046319B (zh) | 社交媒体信息采集方法、装置、系统、设备及存储介质 | |
CN114610446B (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 |