软件地址: https://github.com/rwx------/nginxConfigFormatterGo
码云地址: https://gitee.com/RickieL/nginxConfigFormatterGo
前言
在2018年的时候, 看到了一个nginx配置文件格式化工具, nginx-config-formatter , 当时自己对服务器上的那些乱七八糟的nginx配置文件实在是忍无可忍, 同时也看到网络上也有很多推荐这个工具, 就开始用起来了. 使用过程中, 发现了一些bug, 当时在github上进行了反馈, 后面干脆是自己动手尝试着去修复, 然后提交了pull request , 没想到被软件的原作者接收了, 甚是开心, 第一次为开源做出了自己的贡献. 还有一个pull request, 因为和别人的提交冲突的原因, 一直没有合并, 也就一直搁置了2年的时间.
用go重写
最近在学go, 一直也没找到很好的使用场景, 就想起了这nginx格式化工具, 不如用go重新写一遍吧.
用go重写有几个优点:
- 根据不同的系统进行打包二进制文件, 在服务器上直接使用.
- 不再需要每个服务器上安装python3, 尤其是centos默认的都是python2的环境.
- 执行的效率更高.
- 对go的使用更加熟练了.
所做的改进
- 支持设置缩进的空格数(默认4个空格缩进)
- 支持更多的文件字符集
- 修复了源项目中的多行配置的分解问题
- 修复了原项目中的
"
和'
的配对问题 - 不必对
${variable}
及 rewrite 中的{}
进行特殊处理, 因为nginx配置文件的语法中, 这些时候的花括号都需要被引号包围, 不然语法解析通不过(指nginx -t
). - 减少了一些不必要的重复处理, 从原来的7次全量读写优化到6次全量读写.
后记
我这个go开发的nginx配置文件格式化工具(nginxConfigFormatterGo)还是得到了原python项目作者的star, 得到认可的感觉还是很不错的.
一直以来有个开源梦, 想要开发出一个软件, 能够体现自己作为程序员作为IT人士的价值, 能够给人们带来有用的东西. 也希望自己能留下一些东西, 得到这个世界的认同和认可, 我想大多数开源的目的都有这些原因吧.
希望这个nginx配置软件能给大家带来方便. 请大家随意取用.
软件地址: https://github.com/rwx------/nginxConfigFormatterGo
码云地址: https://gitee.com/RickieL/nginxConfigFormatterGo
来源:oschina
链接:https://my.oschina.net/foreverich/blog/4405736