Mam skrypt Pythona, który dynamicznie zmienia plik konfiguracyjny nginx (nginx.conf
). Ponieważ konfiguracja nginx nie jest w formacie ini
, obecnie używam jakiegoś regexp do parsowania i modyfikowania zawartości pliku. Czy jest to jedyny sposób lub jakiś lepszy sposób na programową zmianę konfiguracji nginx?Każdy dobry sposób programowo zmienić plik konfiguracyjny nginx z Pythona?
Odpowiedz
Obecnie nginx-conf, moduł NPM, który zapewnia dostęp programistyczny do konfiguracji nginx.
Wygląda na to, że istnieje augeas lens obsługujący co najmniej podzbiór składni pliku konfiguracyjnego nginx. Augeas ma również Python bindings.
Wygląda trochę na przesadę, aby użyć biblioteki napisanej w C z powiązaniami Pythona do prostego przetwarzania plików tekstowych O_O. – grigoryvp
Jeszcze lepiej niż wymyślanie koła ... – mensi
Dla każdego, kto chce parsować pliki nginx.conf z języków innych niż Python Augeas ma również [powiązania dla wielu innych języków] (http://augeas.net/download.html) , oprócz narzędzia powłoki. Również moje 2 centy - Augeas jest najbardziej niezawodnym rozwiązaniem, ponieważ zapewnia wspólny API do parsowania wielu plików .conf z różnych języków. Obiektyw nginx jest obecnie ograniczony do podzbioru składni konfiguracji nginx, ale jego rozszerzenie jest dość proste. – brocking
Możecie użyć PyNginxConfig Parser. http://code.google.com/p/pynginxconfig/source/browse/pynginxconfig.py#208 Ta implementacja jest bliska oryginalnemu.
Istnieje również ServerMgr. To naprawdę nie jest parser, tylko pozwala na podstawowe odwzorowania.
Last but not least, faktycznie pierwsze, ponieważ na podstawie pyparsing: https://github.com/fatiherikli/nginxparser
pip install git+https://github.com/fatiherikli/nginxparser.git
Zainstaluj [nginxparser] (https://github.com/fatiherikli/nginxparser) za pomocą 'pip install git + https: //github.com/fatiherikli/nginxparser.git ' – czerasz
- 1. Jak wysłać plik przez HTTP, dobry sposób, używając Pythona?
- 2. Plik konfiguracyjny, który może być odczytany przez pythona i powłokę
- 3. . Własny plik konfiguracyjny .NET
- 4. Plik konfiguracyjny w AngularJS
- 5. Plik konfiguracyjny aplikacji iOS
- 6. Każdy sposób na przyspieszenie Pythona i Pygame?
- 7. Jak zmienić App.config na plik konfiguracyjny json w .Net Core
- 8. Jaki jest dobry sposób dodawania zależności Pythona do kontenera Docker?
- 9. Karma plik konfiguracyjny - wykorzystanie basePath
- 10. Proguard ignoruje plik konfiguracyjny biblioteki
- 11. php.ini jest nieistniejącym Załadowany plik konfiguracyjny (brak)
- 12. Plik konfiguracyjny rejestrowania w języku Python
- 13. Jak mogę programowo zmienić argspec funkcji * not * w dekoratorze Pythona?
- 14. dobry jednorożec + nginx + cap wdrożyć howto?
- 15. zmienić na dobry pomysł mysqli?
- 16. Bz2 każdy plik w katalogu
- 17. Konwersja programowej konfiguracji usługi WCF na plik konfiguracyjny
- 18. pojedynczy plik konfiguracyjny do sporządzania roztworu
- 19. Czy istnieje plik konfiguracyjny dla dodatku Visual Studio?
- 20. Jak zmodyfikować plik konfiguracyjny na wdrożenie clickonce?
- 21. Jak wstępnie załadować plik konfiguracyjny w angular2
- 22. JSF twarze plik konfiguracyjny poza WEB-INF?
- 23. nginx: access.log i error.log plik pusty
- 24. Jak napisać plik konfiguracyjny pep8 (pep8.rc)?
- 25. ipython notebook nie odczyta plik konfiguracyjny
- 26. node.js plik konfiguracyjny błąd linia 433
- 27. Dobry sposób na uniknięcie "udostępniania"?
- 28. Czy możemy zaszyfrować cały plik konfiguracyjny?
- 29. Jak odczytać plik konfiguracyjny w Javie
- 30. character-set-server i MySQL plik konfiguracyjny
Dlaczego nie użyć szablonu do wygenerowania pliku? –
@Mart Nie generuję go - zmieniam istniejący. Skrypt jest używany na istniejących serwerach, które już działają i działają z istniejącymi plikami konfiguracyjnymi. Dodaję lub usuwam elementy w zależności od logiki. – grigoryvp