一种动态生成Nginx配置文件的方法与流程

文档序号:33368514发布日期:2023-03-08 01:22阅读:34来源:国知局
一种动态生成Nginx配置文件的方法与流程
一种动态生成nginx配置文件的方法
技术领域
1.本发明属于it与软件开发技术领域,具体涉及一种动态生成nginx配置文件的方法。


背景技术:

2.nginx是一个高性能的http和反向代理web服务器,nginx官方没有提供可以动态改变配置的api接口,目前修改的方式,大多是手动修改nginx的配置文件,然后使用热加载命令(nginx

s reload)进行配置刷新。操作上非常不便捷,同时发现故障后不能及时修复故障,影响服务器的正常运行。
3.例如专利(cn109450708a)公开了一种高效便捷的nginx动态配置方法及系统,该方法包括在web控制台界面选择配置类型,根据所述配置类型配置与该类型对应的参数,接收配置界面发送的配置类型数据,进行模板类型匹配,判断是否匹配成功,若匹配成功,将ui界面的配置参数写入模板,生成具体的配置,将具体的配置内容写入配置文件,完成配置文件的配置操作使得配置及时生效。本发明实现了ngnix服务器实现动态配置,避免用户后台手动配置,使ngnix服务器配置更加高效、便捷和准确。但是该方法需要运维人员手动选择配置类型,输入配置数据,操作不便,并且不能实现尽快发现变更点,快速修复故障。


技术实现要素:

4.本发明针对现有技术的问题,提供一种简化了配置流程、降低上线风险、及时发现变更点和快速修复故障的动态生成nginx配置文件的方法。
5.为了实现上述发明目的,本发明的技术方案如下:一种动态生成nginx配置文件的方法,:所述nginx配置文件由指令和指令块构成,其中指令由语法和值构成;所述指令块由至少一个指令组成一项配置信息;所述方法包括以下步骤:1)结构化存储nginx配置信息,并将配置信息呈现在运维界面;2)编辑nginx配置文件模板;3)通过梳理nginx配置文件中各个指令的逻辑关系,建立nginx配置文件的数据模型;4)通过模板引擎将nginx配置数据模型和文件模板完成渲染,动态生成nginx配置文件。
6.所述结构化存储是把原来以文件形式存储的配置文件,改成结构化数据的方式存储在数据库中。结构化数据和非结构化数据的区别主要是结构化数据有固定的刚要,非结构化数据没有固定的大小和属性,比如文档、音视频、图片等等。
7.进一步的,所述步骤 1)中的配置信息包括唯一索引id、上级指令id、配置文件id、名称、指令值、状态、配置文件版本。
8.所述将配置信息呈现在运维界面,便于运维人员针对修改,简化了配置流程,降低
上线风险。所述结构化存储有益于历史配置的保存,便于出现问题时进行回溯和追踪,尽快发现变更点,快速修复故障。
9.进一步的,所述步骤 2)中,所述模板设有至少一个自定义指令标签,通过自定义标签,可以简化常规的指令块模板编写效率。
10.本发明具有的优点及有益效果如下:本方法通过将配置信息等呈现在运维界面,便于运维人员针对修改,简化了配置流程,降低上线风险;结构化存储有益于历史配置的保存,便于出现问题时进行回溯和追踪,尽快发现变更点,快速修复故障;降低配置数据和指令输入位置错乱的风险,避免配置数据嵌套错乱,造成服务器无法识别配置文件;在运维页面上,固化了配置文件中可更改的配置数据,避免错误更改配置数据而造成配置文件无法被准确解析。
附图说明
11.图1为本发明方法的流程示意图。
具体实施方式
12.下面结合具体实施例对本发明做进一步说明。
13.实施例:一种动态生成nginx配置文件的方法,:所述nginx配置文件由指令和指令块构成,其中指令由语法和值构成;所述指令块由至少一个指令组成一项配置信息;所述方法包括以下步骤:1)结构化存储nginx配置信息,并将配置信息呈现在运维界面;2)编辑nginx配置文件模板;3)通过梳理nginx配置文件中各个指令的逻辑关系,建立nginx配置文件的数据模型;4)通过模板引擎将nginx配置数据模型和文件模板完成渲染,动态生成nginx配置文件。
14.进一步的,所述步骤 1)中的配置信息包括唯一索引id、上级指令id、配置文件id、名称、指令值、状态。
15.所述将配置信息呈现在运维界面,便于运维人员针对修改,简化了配置流程,降低上线风险。所述结构化存储有益于历史配置的保存,便于出现问题时进行回溯和追踪,尽快发现变更点,快速修复故障。
16.进一步的,所述步骤 2)中,所述模板设有至少一个自定义指令标签,通过自定义标签,可以简化常规的指令块模板编写效率。
17.以java语言为例,在web页面提供富文本编译器,用户编写模板。模板语法使用jsp语法。模板内容:worker_processes
ꢀꢀ
${workprocess};《ex:upstream /》其中“${workprocess}”为获取变量“workprocess”的值。“《ex:upstream /》”为自定义标签,输出内容可自定义。本例中解析后的内容是: upstream ${upstream} {
《c:foreach items="${upstream.servers}" var="server"》server ${server};《/c:foreach》keeplive ${keeplive};}意思是upstream中,包含多个server指令和 keeplive指令,通过自定义标签,可以简化常规的指令块模板编写效率。
18.通过引擎模板渲染后,配置文件内容如下:worker_processes
ꢀꢀ
auto;upstream xxxx{
ꢀꢀꢀꢀ
server 10.128.2.188:9091;
ꢀꢀꢀꢀ
server 10.128.2.189:9091;
ꢀꢀꢀꢀ
server 10.128.2.190:9091;
ꢀꢀꢀꢀ
server 10.128.2.191:9091;
ꢀꢀꢀꢀ
keepalive 16;}。


技术特征:
1.一种动态生成nginx配置文件的方法,其特征在于:所述nginx配置文件由指令和指令块构成,其中指令由语法和值构成;所述指令块由至少一个指令组成一项配置信息;所述方法包括以下步骤:1)结构化存储nginx配置信息,并将配置信息呈现在运维界面;2)编辑nginx配置文件模板;3)通过梳理nginx配置文件中各个指令的逻辑关系,建立nginx配置文件的数据模型;4)通过模板引擎将nginx配置数据模型和文件模板完成渲染,动态生成nginx配置文件。2.根据权利要求1所述的一种动态生成nginx配置文件的方法,其特征在于:所述步骤 1)中的配置信息包括唯一索引id、上级指令id、配置文件id、名称、指令值、状态、配置文件版本。3.根据权利要求1所述的一种动态生成nginx配置文件的方法,其特征在于:所述步骤 2)中,所述nginx配置文件模板设有至少一个自定义指令标签。

技术总结
本发明公开了一种动态生成Nginx配置文件的方法,所述Nginx配置文件由指令和指令块构成,其中指令由语法和值构成;所述指令块由至少一个指令组成一项配置信息;所述方法包括结构化存储Nginx配置信息,并将配置信息呈现在运维界面;编辑Nginx配置文件模板;通过模板引擎将配置数据和模板完成渲染,生成配置文件等步骤。本发明相较与手动编写标准配置文件的方法,优点是操作便利性有极大的提高;相较与固定模板的方法,在模板编辑方面更灵活,支持的模板范围更广,操作更加便捷。操作更加便捷。操作更加便捷。


技术研发人员:梁德成 莫静锋
受保护的技术使用者:广西壮族自治区公众信息产业有限公司
技术研发日:2022.09.21
技术公布日:2023/3/7
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1