从python以编程方式更改nginx配置文件有什么好方法吗?

从python以编程方式更改nginx配置文件有什么好方法吗?,python,nginx,Python,Nginx,我有一个python脚本,可以动态更改nginx配置文件(nginx.conf)。由于nginx配置不是ini格式,我目前使用一些regexp来解析和修改文件内容。这是以编程方式更改现有nginx配置的唯一方法还是更好的方法?似乎存在至少支持nginx配置文件语法子集的方法。奥格斯也有 您可以使用PyNginxConfig解析器。 此实现与原始实现非常接近 还有。 它不是真正的解析器,只允许基本映射 最后但并非最不重要的一点,实际上是第一点,因为基于pyparsing: pip安装git

我有一个python脚本,可以动态更改nginx配置文件(
nginx.conf
)。由于nginx配置不是
ini
格式,我目前使用一些regexp来解析和修改文件内容。这是以编程方式更改现有nginx配置的唯一方法还是更好的方法?

似乎存在至少支持nginx配置文件语法子集的方法。奥格斯也有

  • 您可以使用PyNginxConfig解析器。 此实现与原始实现非常接近

  • 还有。 它不是真正的解析器,只允许基本映射

  • 最后但并非最不重要的一点,实际上是第一点,因为基于pyparsing:

    pip安装git+https://github.com/fatiherikli/nginxparser.git


  • 现在有了一个NPM模块,它提供对nginx配置的编程访问。

    nginx Inc在2017年开始提供一个库,它是一种“将nginx配置转换为JSON并返回的快速可靠方法”。它被调用,您可以通过
    pip
    获得它

    pip install crossplane
    

    使用此功能,您可以将文件解析为JSON、反序列化、操作、序列化回JSON,然后再转换回NGINX配置文件格式。

    为什么不使用模板生成文件?@Mart我不生成它-我更改了现有文件。脚本用于已经启动nginx并使用现有配置文件运行的现有服务器。我根据一些逻辑添加或删除项。使用C编写的库和python绑定进行简单的文本文件处理O_O看起来有点过火。对于任何希望从python以外的语言解析nginx.conf文件的人来说,除了shell工具之外,Augeas也有。另外,我的2美分-Augeas是最健壮的解决方案,因为它提供了一个通用API来解析来自不同语言的许多.conf文件。nginx lens目前仅限于nginx配置语法的一个子集,但它的扩展相当简单+https://github.com/fatiherikli/nginxparser.git OP询问Python——为什么被接受的答案建议使用NPM(Javascript)模块?答案提供了Javascript,不是作者要求的Python。被否决。