我有一個Python腳本,動態改變nginx配置文件(nginx.conf
)。由於nginx配置不是ini
格式,我目前使用一些正則表達式來解析和修改文件內容。它是以編程方式改變nginx配置的唯一方式還是更好的方法嗎?以編程方式從python更改nginx配置文件的任何好方法?
回答
現在有nginx-conf,一個NPM模塊,提供給nginx的配置編程訪問。
好像存在支持nginx配置文件語法的至少一個子集的augeas lens。 Augeas也有Python bindings。
看起來有點矯枉過正,使用C語言編寫的庫,使用python綁定進行簡單的文本文件處理O_O。 – grigoryvp 2013-03-07 20:30:21
仍然比重塑輪子更好... – mensi 2013-03-07 21:33:48
對於任何想從Python以外的語言解析nginx.conf文件的人,Augeas也有[其他語言的綁定](http://augeas.net/download.html) ,除了一個shell工具。另外我的2美分 - Augeas是最強大的解決方案,因爲它提供了一個通用的API來解析來自不同語言的許多.conf文件。 nginx鏡頭目前僅限於nginx配置語法的子集,但擴展起來相當簡單。 – brocking 2016-09-28 13:26:46
您可以使用PyNginxConfig分析器。 http://code.google.com/p/pynginxconfig/source/browse/pynginxconfig.py#208 這個實現接近原來的。
還有ServerMgr。 它不是一個真正的解析器,只是允許基本映射。
最後但並非最不重要的,其實首先是因爲基於pyparsing:https://github.com/fatiherikli/nginxparser
pip install git+https://github.com/fatiherikli/nginxparser.git
用'pip install git + https://github.com/fatiherikli/nginxparser.git '安裝[nginxparser](https://github.com/fatiherikli/nginxparser) – czerasz 2015-04-14 06:40:39
- 1. Windows以編程方式更改防火牆配置文件
- 2. 更好的配置文件的方式?
- 3. 以編程方式更改deployment.properties文件
- 4. 以編程方式更改XML文件?
- 5. 以編程方式更改BMP文件
- 6. 從命令行或以編程方式更改配置參數
- 7. 以編程方式更改以ms訪問的RecordsetType或更好的方法
- 8. 如何以編程方式更新log4net配置文件?
- 9. Fabric,Python - 以編程方式更改env
- 10. 如何以編程方式分析(和更改)IIS的配置
- 11. 更改IE設置以編程方式
- 12. 如何以編程方式更改OpenLDAP配置(slapd.conf)
- 13. 如何在運行時以編程方式更改Firefox配置?
- 14. Python:以編程方式更改Cmd啓動文件夾
- 15. 如何以編程方式爲任何環境設置活動配置文件?
- 16. 以編程方式更新配置文件vb.net
- 17. 以編程方式更改標籤方向,編程方式
- 18. 更好的編程方式
- 19. 如何以編程方式配置MessageDispatcherServlet
- 20. 如何以編程方式配置JDBCAppender
- 21. 如何以編程方式配置ELMAH?
- 22. 如何以編程方式配置UITableViewCell?
- 23. 將配置文件更改爲以黑莓編程方式無聲
- 24. 如何以編程方式更改.bat文件的圖標?
- 25. 如何以編程方式更改UIView?
- 26. 如何以編程方式更改android:configChanges?
- 27. 以編程方式配置IPhone設置
- 28. 如何以編程方式調用Eclipse清理配置文件?
- 29. 如何以編程方式更改Wordpress上傳文件夾?
- 30. 如何以編程方式從配置文件中檢索configSource位置
爲什麼不使用模板來生成文件? – 2013-03-07 17:16:54
@Mart我不生成它 - 我改變現有的。在現有的服務器上使用腳本,這些服務器已經啓動了nginx並且使用現有的配置文件運行。我根據一些邏輯添加或刪除項目。 – grigoryvp 2013-03-07 17:18:27