有没有好的方法从Python程序中修改nginx配置文件?
我有一个Python脚本,它可以动态地修改nginx的配置文件(nginx.conf
)。因为nginx的配置文件不是ini
格式的,所以我现在使用一些正则表达式来解析和修改文件内容。请问这是不是唯一的方法,或者有没有更好的方式可以编程地修改nginx的配置呢?
5 个回答
11
NGINX公司在2017年开始提供一个库,这个库可以“快速而可靠地将NGINX的配置文件转换成JSON格式,再转换回来。”这个库叫做 crossplan,你可以通过 pip
来获取它。
pip install crossplane
使用这个库,你可以把一个文件解析成JSON格式,进行反序列化、修改,然后再把它序列化回JSON格式,最后再转换回NGINX的配置文件格式。
11
你可以使用PyNginxConfig解析器。这个链接是它的源码,这个实现和原版很接近。
还有一个叫做ServerMgr的工具。它其实不是一个解析器,只是提供了一些基本的映射功能。
最后但同样重要的,实际上是最重要的,因为它是基于pyparsing的:这是nginxparser的GitHub链接。
pip install git+https://github.com/pyhedgehog/nginxparser.git
这个命令可以用来安装它。
2
我刚发现了一个叫做 python-nginx 的东西,它只用Python就能很好地工作,完全不需要C语言或者其他Python包!文档可以再改进一下,或许我会提交一个改进建议。