Ho uno script python che altera dinamicamente il file di configurazione nginx (nginx.conf
). Poiché la configurazione di nginx non è nel formato ini
, attualmente utilizzo alcune espressioni regolari per analizzare e modificare il contenuto del file. È l'unico modo o esiste un modo migliore per modificare a livello di codice la configurazione di nginx?Un buon modo per cambiare a livello di codice il file di configurazione nginx da python?
risposta
V'è ora nginx-conf, un modulo NPM che fornisce l'accesso programmatico alle configurazioni nginx.
Sembra esistere un augeas lens che supporta almeno un sottoinsieme della sintassi del file di configurazione nginx. Augeas ha anche Python bindings.
Sembra un po 'eccessivo usare la libreria scritta in C con collegamenti Python per l'elaborazione di file di testo semplice O_O. – grigoryvp
Ancora meglio di reinventare la ruota ... – mensi
Per chi cerca di analizzare i file nginx.conf da lingue diverse da Python Augeas ha anche [collegamenti per un numero di altre lingue] (http://augeas.net/download.html) , oltre a uno strumento shell. Anche i miei 2 centesimi - Augeas è la soluzione più robusta in quanto fornisce un'API comune per analizzare molti file .conf di lingue diverse. L'obiettivo nginx è attualmente limitato a un sottoinsieme della sintassi di configurazione di nginx ma è piuttosto semplice da estendere. – brocking
si potrebbe utilizzare il PyNginxConfig Parser. http://code.google.com/p/pynginxconfig/source/browse/pynginxconfig.py#208 Questa implementazione è simile a quella originale.
C'è anche ServerMgr. Non è proprio un parser, consente solo i mapping di base.
Ultimo ma non meno importante, in realtà prima, perché sulla base di pyparsing: https://github.com/fatiherikli/nginxparser
pip install git+https://github.com/fatiherikli/nginxparser.git
Installa [nginxparser] (https://github.com/fatiherikli/nginxparser) con 'pip install git + https: //github.com/fatiherikli/nginxparser.git ' – czerasz
- 1. Python: configurazione uWSGI per Nginx + BOCCETTA
- 2. modo conciso per cambiare il livello log console django
- 3. Un modo per reimpostare a livello di codice le classifiche?
- 4. C'è un buon modo per analizzare il codice C# 3.0?
- 5. Qual è un buon modo per controllare una fisarmonica angolare-ui a livello di programmazione?
- 6. NGINX cambia posizione di configurazione
- 7. configurazione corretta per nginx a localhost?
- 8. Crea file su Onedrive a livello di codice da C#?
- 9. matlab assegnare un "impostazioni di esportazione" -> "Carica impostazioni da" per cifre a livello di codice
- 10. Caricamento a livello di codice di un file
- 11. Cambiare carattere a livello di codice su System Semibold
- 12. configurazione di nginx per servire file json statici
- 13. Come faccio a convertire a livello di codice un file Keynote in un PowerPoint?
- 14. C'è un buon modo per gestire le eccezioni in Python?
- 15. Sostituire un frammento a livello di codice
- 16. C'è un modo per sovrascrivere il file di configurazione di CKEditor per ogni istanza dell'editor?
- 17. Come faccio a cambiare a livello di codice la data di creazione, modifica, accesso su un file?
- 18. c'è un modo per stampare il file di configurazione per le opzioni del programma di potenziamento
- 19. Come aggiungere i vincoli a livello di codice a un UIView creato a livello di codice?
- 20. Come faccio a cambiare a livello di codice il titolo in una finestra wpf?
- 21. Buon browser di codice sorgente per C
- 22. C'è un buon modo per condividere il seed di random tra i moduli (in python)?
- 23. Come controllare a livello di codice l'azione di compilazione dei nuovi file generati da un T4?
- 24. nginx - configurazione di due sottodomini
- 25. Come accedere a una condivisione file a livello di codice
- 26. configurazione sottodominio nginx
- 27. Generazione di file BPEL a livello di codice?
- 28. il modo migliore per salvare la richiesta nginx come file?
- 29. Qual è il modo migliore per modificare una configurazione di progetto da un plug-in?
- 30. È mai educato inserire il codice in un file di configurazione Python?
Perché non utilizzare un modello per generare il file? –
@Mart Non lo faccio, lo altero. Lo script viene utilizzato su server esistenti che hanno già nginx installato e in esecuzione con i file di configurazione esistenti. Aggiungo o rimuovo gli articoli a seconda della logica. – grigoryvp