CN112506585B - 一种基于Java动态改变Nginx配置的系统及方法 - Google Patents
一种基于Java动态改变Nginx配置的系统及方法 Download PDFInfo
- Publication number
- CN112506585B CN112506585B CN202011589060.3A CN202011589060A CN112506585B CN 112506585 B CN112506585 B CN 112506585B CN 202011589060 A CN202011589060 A CN 202011589060A CN 112506585 B CN112506585 B CN 112506585B
- Authority
- CN
- China
- Prior art keywords
- nginx
- configuration
- java
- java application
- configuration file
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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
Abstract
本发明公开一种基于Java动态改变Nginx配置的系统及方法,涉及软件开发技术领域,其实现内容为:Java应用模块,用于提供Restful形式的API接口,用于读取Nginx的配置信息,并基于读取的配置信息生成Nginx的配置文件;Nginx配置模块,用于配置Java应用模块生成的配置文件;数据存储模块,用于持久化存储Nginx的配置信息;定时任务模块,内置于Java应用模块,用于定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx的热加载命令,使得配置文件生效。本发明通过对Nginx配置的新增、删除以及动态刷新,以较小的延时热加载Nginx的配置,使Nginx配置自动生效,避免手动进入Nginx配置文件修改,使得Nginx配置更加简单、有效、便捷。
Description
技术领域
本发明涉及Nginx配置文件,具体的说是一种基于Java动态改变Nginx配置的系统及方法。
背景技术
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。
Nginx官方没有提供可以动态改变配置的API接口,目前修改的方式,大多是手动修改Nginx的配置文件,然后使用热加载命令(Nginx–s reload)进行配置刷新。此种方式需要进入到Nginx所在服务器才能进行修改,存在安全隐患;用户体验不够优雅,开发学习成本极大。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于Java动态改变Nginx配置的系统及方法。
首先,本发明公开一种基于Java动态改变Nginx配置的系统,解决上述技术问题采用的技术方案如下:
一种基于Java动态改变Nginx配置的系统,其包括:
Java应用模块,用于提供Restful形式的API接口,用于读取Nginx的配置信息,并基于读取的配置信息生成Nginx的配置文件;
Nginx配置模块,用于配置Java应用模块生成的配置文件;
数据存储模块,用于持久化存储Nginx的配置信息;
定时任务模块,内置于Java应用模块,用于定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx的热加载命令,使得配置文件生效。
进一步的,所涉及API接口具有新增Nginx配置、删除Nginx配置、手动加载Nginx配置的功能。
更进一步的,所涉及新增Nginx配置的接口包含如下内容:协议、目的IP端口以及自定义配置,Java应用会将API接口内容持久化至数据存储模块,新增成功后,会返回相应信息,并返回唯一标志ID,供删除使用,如有异常或者格式检验不过,Java应用所在的系统会抛出相应错误信息,请求报文体。
更进一步的,所涉及删除Nginx配置的接口用于调用接口,删除已经废弃的或者不在使用的Nginx配置,删除的筛选条件是唯一标志ID。
更进一步的,所涉及手动加载Nginx配置的接口针对修改后的Nginx配置,使其直接生效,无需等待。
优选的,所涉及Java应用模块将生成的配置文件统一存放在Nginx的配置文件目录下,配置文件的格式为.conf或者.stream。
更进一步的,所涉及数据存储模块引入MySQL或Redis作为分布式锁;
数据存储模块使用分布式锁来记录Nginx配置改变的时间,在Nginx配置改变时,数据存储模块保存Nginx配置的改变内容以及Nginx配置改变的时间;
调用Java应用所在系统的命令去执行Nginx的热加载命令,都会更新Nginx配置时间,每次文件改变都更新配置文件变更时间,然后对这两个时间进行比较,如果Nginx配置时间大于文件变更时间,则要进行Nginx配置热加载,否则无需改变。
其次,本发明公开一种基于Java动态改变Nginx配置的方法,解决上述技术问题采用的技术方案如下:
一种基于Java动态改变Nginx配置的方法,其实现过程包括:
数据库持久化存储Nginx的配置信息;
Java应用从数据库读取Nginx的配置信息,生成Nginx的配置文件,并统一存放在Nginx的配置文件目录下;
Nginx应用读取并配置Nginx的配置文件;
Java应用提供Restful形式的API接口,通过API接口可以访问外部应用;
Java应用内置定时任务,以定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx的热加载命令,使得配置文件生效。
进一步的,所涉及Java应用提供的API接口具有新增Nginx配置、删除Nginx配置、手动加载Nginx配置的功能;
新增Nginx配置的接口包含如下内容:协议、目的IP端口以及自定义配置,Java应用会将API接口内容持久化至数据存储模块,新增成功后,会返回相应信息,并返回唯一标志ID,供删除使用,如有异常或者格式检验不过,Java应用所在的系统会抛出相应错误信息,请求报文体;
删除Nginx配置的接口用于调用接口,删除已经废弃的或者不在使用的Nginx配置,删除的筛选条件是唯一标志ID;
手动加载Nginx配置的接口针对修改后的Nginx配置,使其直接生效,无需等待。
优选的,所涉及配置文件的格式为.conf或者.stream,统一存放在Nginx的配置文件目录下。
本发明的一种基于Java动态改变Nginx配置的系统及方法,与现有技术相比具有的有益效果是:
本发明可以对Nginx配置的新增、删除以及动态刷新,还可以通过较小的延时热加载Nginx的配置,使Nginx配置自动生效,避免手动进入Nginx配置文件修改,使得Nginx配置更加简单、有效、便捷。
附图说明
附图1是本发明实施例一的连接框图;
附图2是本发明实施例二的流程示意图。
附图中各标号信息表示:
1、Java应用模块,2、Nginx配置模块,3、数据存储模块,4、定时任务模块。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
结合附图1,本实施例提出一种基于Java动态改变Nginx配置的系统,其包括:
Java应用模块1,用于提供Restful形式的API接口,用于读取Nginx的配置信息,并基于读取的配置信息生成Nginx的配置文件,生成的配置文件统一存放在Nginx的配置文件目录下,配置文件的格式为.conf或者.stream;
Nginx配置模块2,用于配置Java应用模块1生成的配置文件;
数据存储模块3,用于持久化存储Nginx的配置信息;
定时任务模块4,内置于Java应用模块1,用于定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx的热加载命令,使得配置文件生效。
本实施例中,API接口具有新增Nginx配置、删除Nginx配置、手动加载Nginx配置的功能。
新增Nginx配置的接口包含如下内容:协议、目的IP端口以及自定义配置,Java应用会将API接口内容持久化至数据存储模块,新增成功后,会返回相应信息,并返回唯一标志ID,供删除使用,如有异常或者格式检验不过,Java应用所在的系统会抛出相应错误信息,请求报文体。
删除Nginx配置的接口用于调用接口,删除已经废弃的或者不在使用的Nginx配置,删除的筛选条件是唯一标志ID。
手动加载Nginx配置的接口针对修改后的Nginx配置,使其直接生效,无需等待。
本实施例中,数据存储模块3引入MySQL或Redis作为分布式锁;
数据存储模块3使用分布式锁来记录Nginx配置改变的时间,在Nginx配置改变时,数据存储模块3保存Nginx配置的改变内容以及Nginx配置改变的时间;
调用Java应用所在系统的命令去执行Nginx的热加载命令,都会更新Nginx配置时间,每次文件改变都更新配置文件变更时间,然后对这两个时间进行比较,如果Nginx配置时间大于文件变更时间,则要进行Nginx配置热加载,否则无需改变。
实施例二:
结合附图2,本实施例提出一种基于Java动态改变Nginx配置的方法,其实现过程包括:
数据库持久化存储Nginx的配置信息;
Java应用从数据库读取Nginx的配置信息,生成格式为.conf或者.stream的Nginx配置文件,并统一存放在Nginx的配置文件目录下;
Nginx应用读取并配置Nginx的配置文件;
Java应用提供Restful形式的API接口,通过API接口可以访问外部应用;
Java应用内置定时任务,以定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx的热加载命令,使得配置文件生效。
本实施例中,Java应用提供的API接口具有新增Nginx配置、删除Nginx配置、手动加载Nginx配置的功能。
新增Nginx配置的接口包含如下内容:协议、目的IP端口以及自定义配置,Java应用会将API接口内容持久化至数据存储模块,新增成功后,会返回相应信息,并返回唯一标志ID,供删除使用,如有异常或者格式检验不过,Java应用所在的系统会抛出相应错误信息,请求报文体。
删除Nginx配置的接口用于调用接口,删除已经废弃的或者不在使用的Nginx配置,删除的筛选条件是唯一标志ID。
手动加载Nginx配置的接口针对修改后的Nginx配置,使其直接生效,无需等待。
综上可知,采用本发明的一种基于Java动态改变Nginx配置的系统及方法,通过对Nginx配置的新增、删除以及动态刷新,以较小的延时热加载Nginx的配置,使Nginx配置自动生效,避免手动进入Nginx配置文件修改,使得Nginx配置更加简单、有效、便捷。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
Claims (10)
1.一种基于Java动态改变Nginx配置的系统,其特征在于,其包括:
Java应用模块,用于提供Restful 形式的API接口,用于读取Nginx的配置信息,并基于读取的配置信息生成Nginx的配置文件;
Nginx 配置模块,用于配置Java应用模块生成的配置文件;
数据存储模块,用于引入MySQL或Redis作为分布式锁,来记录Nginx配置改变的时间,在Nginx配置改变时,数据存储模块保存Nginx配置的改变内容以及Nginx配置改变的时间;
定时任务模块,内置于Java应用模块,用于定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx 的热加载命令,使得配置文件生效。
2.根据权利要求1所述的一种基于Java动态改变Nginx配置的系统,其特征在于,所述API接口具有新增Nginx配置、删除Nginx配置、手动加载Nginx配置的功能。
3.根据权利要求2所述的一种基于Java动态改变Nginx配置的系统,其特征在于,新增Nginx配置的接口包含如下内容:协议、目的IP端口以及自定义配置,Java应用会将API接口内容持久化至数据存储模块,新增成功后,会返回相应信息,并返回唯一标志ID,供删除使用,如有异常或者格式检验不过,Java应用所在的系统会抛出相应错误信息,请求报文体。
4.根据权利要求3所述的一种基于Java动态改变Nginx配置的系统,其特征在于,删除Nginx配置的接口用于调用接口,删除已经废弃的或者不在使用的Nginx配置,删除的筛选条件是唯一标志ID。
5.根据权利要求4所述的一种基于Java动态改变Nginx配置的系统,其特征在于,手动加载Nginx配置的接口针对修改后的Nginx配置,使其直接生效,无需等待。
6.根据权利要求1所述的一种基于Java动态改变Nginx配置的系统,其特征在于,所述Java应用模块将生成的配置文件统一存放在Nginx的配置文件目录下,配置文件的格式为.conf 或者.stream。
7.根据权利要求1所述的一种基于Java动态改变Nginx配置的系统,其特征在于,调用Java应用所在系统的命令去执行Nginx 的热加载命令,都会更新Nginx配置时间,每次文件改变都更新配置文件变更时间,然后对这两个时间进行比较,如果Nginx配置时间大于文件变更时间,则要进行Nginx配置热加载,否则无需改变。
8.一种基于Java动态改变Nginx配置的方法,其特征在于,其实现过程包括:
数据库持久化存储Nginx的配置信息;
Java应用从数据库读取Nginx的配置信息,生成Nginx的配置文件,并统一存放在Nginx的配置文件目录下;
Nginx应用读取并配置Nginx的配置文件;
Java应用提供Restful 形式的API接口,通过API接口可以访问外部应用;
Java应用内置定时任务,以定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx 的热加载命令,使得配置文件生效。
9.根据权利要求8所述的一种基于Java动态改变Nginx配置的方法,其特征在于,所述Java应用提供的API接口具有新增Nginx配置、删除Nginx配置、手动加载Nginx配置的功能;
新增Nginx配置的接口包含如下内容:协议、目的IP端口以及自定义配置,Java应用会将API接口内容持久化至数据存储模块,新增成功后,会返回相应信息,并返回唯一标志ID,供删除使用,如有异常或者格式检验不过,Java应用所在的系统会抛出相应错误信息,请求报文体;
删除Nginx配置的接口用于调用接口,删除已经废弃的或者不在使用的Nginx配置,删除的筛选条件是唯一标志ID;
手动加载Nginx配置的接口针对修改后的Nginx配置,使其直接生效,无需等待。
10.根据权利要求8所述的一种基于Java动态改变Nginx配置的方法,其特征在于,所述配置文件的格式为.conf 或者.stream,统一存放在Nginx的配置文件目录下。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589060.3A CN112506585B (zh) | 2020-12-28 | 2020-12-28 | 一种基于Java动态改变Nginx配置的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589060.3A CN112506585B (zh) | 2020-12-28 | 2020-12-28 | 一种基于Java动态改变Nginx配置的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506585A CN112506585A (zh) | 2021-03-16 |
CN112506585B true CN112506585B (zh) | 2023-07-25 |
Family
ID=74951945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011589060.3A Active CN112506585B (zh) | 2020-12-28 | 2020-12-28 | 一种基于Java动态改变Nginx配置的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506585B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174369A (zh) * | 2021-04-02 | 2022-10-11 | 深圳市锐速云计算有限公司 | 基于nginx的网络节点集群调度与自动化部署方法及系统 |
CN114327606B (zh) * | 2022-03-11 | 2022-07-05 | 武汉中科通达高新技术股份有限公司 | 配置管理方法、装置、电子设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468226A (zh) * | 2014-12-18 | 2015-03-25 | 山东中创软件工程股份有限公司 | 基于Nginx的配置方法及装置 |
CN109347675A (zh) * | 2018-10-31 | 2019-02-15 | 新华三大数据技术有限公司 | 服务器配置方法、装置以及电子设备 |
CN109450708A (zh) * | 2018-12-14 | 2019-03-08 | 北京明朝万达科技股份有限公司 | 一种Nginx动态配置方法及系统 |
CN110941588A (zh) * | 2018-09-21 | 2020-03-31 | 北京国双科技有限公司 | 文件的配置方法及装置 |
CN111045721A (zh) * | 2019-10-29 | 2020-04-21 | 平安科技(深圳)有限公司 | 动态修改Nginx配置参数的方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9787760B2 (en) * | 2013-09-24 | 2017-10-10 | Chad Folkening | Platform for building virtual entities using equity systems |
-
2020
- 2020-12-28 CN CN202011589060.3A patent/CN112506585B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468226A (zh) * | 2014-12-18 | 2015-03-25 | 山东中创软件工程股份有限公司 | 基于Nginx的配置方法及装置 |
CN110941588A (zh) * | 2018-09-21 | 2020-03-31 | 北京国双科技有限公司 | 文件的配置方法及装置 |
CN109347675A (zh) * | 2018-10-31 | 2019-02-15 | 新华三大数据技术有限公司 | 服务器配置方法、装置以及电子设备 |
CN109450708A (zh) * | 2018-12-14 | 2019-03-08 | 北京明朝万达科技股份有限公司 | 一种Nginx动态配置方法及系统 |
CN111045721A (zh) * | 2019-10-29 | 2020-04-21 | 平安科技(深圳)有限公司 | 动态修改Nginx配置参数的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112506585A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506585B (zh) | 一种基于Java动态改变Nginx配置的系统及方法 | |
US11416676B2 (en) | Using text messages to interact with spreadsheets | |
KR101224721B1 (ko) | 컨텍스트-인식 플랫폼을 위한 시스템 및 방법 | |
KR102193489B1 (ko) | 엔트리들을 위한 옵트-인 영속성을 갖는 메시지 스레드를 유지하는 장치 및 방법 | |
KR101238574B1 (ko) | 수정가능 문서를 다수의 클라이언트들과 동기화시키는방법, 시스템 및 컴퓨터 판독가능 매체 | |
JP6266588B2 (ja) | ローカル・データーおよびリモート・データーの同期 | |
US8161107B2 (en) | Roaming personal information items across multiple computing devices using an IMAP server | |
US10375149B2 (en) | Application registration and interaction | |
CN108255513A (zh) | 电子装置、基于springmvc的数据接口及其说明自动生成方法及存储介质 | |
CN111240807B (zh) | 一种卷启动的虚拟机重建方法、终端及可读存储介质 | |
CN108536544A (zh) | 基于数据库消息队列的消费方法、装置、服务器和介质 | |
CN111371851B (zh) | 一种连接方法、装置及电子设备和存储介质 | |
CN105511904B (zh) | 一种自动更新快捷窗口的方法及装置 | |
CN111309406A (zh) | 应用程序的事件处理方法、装置及电子设备 | |
CN114979114B (zh) | 云应用处理方法和系统 | |
CN116450134A (zh) | 可配置的前端控件校验控制器生成方法及系统 | |
CN113507529A (zh) | 基于Web应用实现文件下载的方法 | |
JP2015052852A (ja) | 情報処理装置、機能制限プログラム及び機能制限方法 | |
CN109857742B (zh) | 一种大数据虚拟表格快速显示方法及系统 | |
CN107918654B (zh) | 文件解压缩方法、装置及电子设备 | |
CN113924548A (zh) | 特征文件批的自动水合 | |
CN109857719A (zh) | 分布式文件处理方法、装置、计算机设备以及存储介质 | |
US20090210647A1 (en) | Method for dynamically resizing file systems | |
CN113656171A (zh) | 应用于数据库的用户级别资源控制方法、装置及终端设备 | |
US8140807B2 (en) | System and computer program product for dynamically resizing file systems |
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 |