一种基于Java动态改变Nginx配置的系统及方法技术方案

技术编号:27684786 阅读:9 留言:0更新日期:2021-03-17 03:46
本发明专利技术公开一种基于Java动态改变Nginx配置的系统及方法,涉及软件开发技术领域,其实现内容为:Java应用模块,用于提供Restful形式的API接口,用于读取Nginx的配置信息,并基于读取的配置信息生成Nginx的配置文件;Nginx配置模块,用于配置Java应用模块生成的配置文件;数据存储模块,用于持久化存储Nginx的配置信息;定时任务模块,内置于Java应用模块,用于定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx的热加载命令,使得配置文件生效。本发明专利技术通过对Nginx配置的新增、删除以及动态刷新,以较小的延时热加载Nginx的配置,使Nginx配置自动生效,避免手动进入Nginx配置文件修改,使得Nginx配置更加简单、有效、便捷。

【技术实现步骤摘要】
一种基于Java动态改变Nginx配置的系统及方法
本专利技术涉及Nginx配置文件,具体的说是一种基于Java动态改变Nginx配置的系统及方法。
技术介绍
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名,可以在UNIX、GNU/Linux、BSD、MacOSX、Solaris,以及MicrosoftWindows等操作系统中运行。Nginx官方没有提供可以动态改变配置的API接口,目前修改的方式,大多是手动修改Nginx的配置文件,然后使用热加载命令(Nginx–sreload)进行配置刷新。此种方式需要进入到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接口内容持久化至数据存储模块,新增成功后,会返回相应信息,本文档来自技高网...

【技术保护点】
1.一种基于Java动态改变Nginx配置的系统,其特征在于,其包括:/nJava应用模块,用于提供Restful形式的API接口,用于读取Nginx的配置信息,并基于读取的配置信息生成Nginx的配置文件;/nNginx配置模块,用于配置Java应用模块生成的配置文件;/n数据存储模块,用于持久化存储Nginx的配置信息;/n定时任务模块,内置于Java应用模块,用于定时扫描Nginx的配置文件,并轮询检测Nginx配置文件是否发生变化,若发生变化,调用Java应用所在系统的命令去执行Nginx的热加载命令,使得配置文件生效。/n

【技术特征摘要】
1.一种基于Java动态改变Nginx配置的系统,其特征在于,其包括:
Java应用模块,用于提供Restful形式的API接口,用于读取Nginx的配置信息,并基于读取的配置信息生成Nginx的配置文件;
Nginx配置模块,用于配置Java应用模块生成的配置文件;
数据存储模块,用于持久化存储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配置的系统,其特征在于,所述数据存储模块引入MySQL或Redis作为分布式...

【专利技术属性】
技术研发人员:魏金雷肖培玉高传集徐士强赵子恒
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

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

1