有没有好的方法从Python程序中修改nginx配置文件?

24 投票
5 回答
18646 浏览
提问于 2025-04-17 18:17

我有一个Python脚本,它可以动态地修改nginx的配置文件(nginx.conf)。因为nginx的配置文件不是ini格式的,所以我现在使用一些正则表达式来解析和修改文件内容。请问这是不是唯一的方法,或者有没有更好的方式可以编程地修改nginx的配置呢?

5 个回答

11

NGINX公司在2017年开始提供一个库,这个库可以“快速而可靠地将NGINX的配置文件转换成JSON格式,再转换回来。”这个库叫做 crossplan,你可以通过 pip 来获取它。

pip install crossplane

使用这个库,你可以把一个文件解析成JSON格式,进行反序列化、修改,然后再把它序列化回JSON格式,最后再转换回NGINX的配置文件格式。

11
  1. 这是一个关于nginx配置的npm包

  2. 你可以使用PyNginxConfig解析器这个链接是它的源码,这个实现和原版很接近。

  3. 还有一个叫做ServerMgr的工具。它其实不是一个解析器,只是提供了一些基本的映射功能。

  4. 最后但同样重要的,实际上是最重要的,因为它是基于pyparsing的:这是nginxparser的GitHub链接

    pip install git+https://github.com/pyhedgehog/nginxparser.git 这个命令可以用来安装它。

2

我刚发现了一个叫做 python-nginx 的东西,它只用Python就能很好地工作,完全不需要C语言或者其他Python包!文档可以再改进一下,或许我会提交一个改进建议。

撰写回答