2013-03-07 284 views
9

我有一個Python腳本,動態改變nginx配置文件(nginx.conf)。由於nginx配置不是ini格式,我目前使用一些正則表達式來解析和修改文件內容。它是以編程方式改變nginx配置的唯一方式還是更好的方法嗎?以編程方式從python更改nginx配置文件的任何好方法?

+3

爲什麼不使用模板來生成文件? – 2013-03-07 17:16:54

+1

@Mart我不生成它 - 我改變現有的。在現有的服務器上使用腳本,這些服務器已經啓動了nginx並且使用現有的配置文件運行。我根據一些邏輯添加或刪除項目。 – grigoryvp 2013-03-07 17:18:27

回答

6

現在有nginx-conf,一個NPM模塊,提供給nginx的配置編程訪問。

3

好像存在支持nginx配置文件語法的至少一個子集的augeas lens。 Augeas也有Python bindings

+1

看起來有點矯枉過正,使用C語言編寫的庫,使用python綁定進行簡單的文本文件處理O_O。 – grigoryvp 2013-03-07 20:30:21

+1

仍然比重塑輪子更好... – mensi 2013-03-07 21:33:48

+1

對於任何想從Python以外的語言解析nginx.conf文件的人,Augeas也有[其他語言的綁定](http://augeas.net/download.html) ,除了一個shell工具。另外我的2美分 - Augeas是最強大的解決方案,因爲它提供了一個通用的API來解析來自不同語言的許多.conf文件。 nginx鏡頭目前僅限於nginx配置語法的子集,但擴展起來相當簡單。 – brocking 2016-09-28 13:26:46

7
  1. https://www.npmjs.com/package/nginx-conf

  2. 您可以使用PyNginxConfig分析器http://code.google.com/p/pynginxconfig/source/browse/pynginxconfig.py#208 這個實現接近原來的。

  3. 還有ServerMgr。 它不是一個真正的解析器,只是允許基本映射。

  4. 最後但並非最不重要的,其實首先是因爲基於pyparsing:https://github.com/fatiherikli/nginxparser

    pip install git+https://github.com/fatiherikli/nginxparser.git

+2

用'pip install git + https://github.com/fatiherikli/nginxparser.git '安裝[nginxparser](https://github.com/fatiherikli/nginxparser) – czerasz 2015-04-14 06:40:39

相關問題