Derzeit hat ein Projekt, das mein Team geerbt hat, ein komplettes Durcheinander in der Nginx-Konfiguration in mehr als 10 Umgebungen. Wir würden gerne eine Versionierungsstrategie implementieren, bin mir jedoch nicht sicher, wie die Leute dies “normalerweise” erreichen. Sie machen den gesamten nginx conf-Ordner zu einem Git-Repo und ignorieren, was Sie nicht versionieren möchten? oder haben Sie einen separaten Ordner mit dem Konfigurationsdatei-Repo und stellen Sie die Dateien mit einem Skript bereit?
Versionierungsstrategie für die Nginx-Konfiguration
Wir verwalten es ausschließlich für die Nginx-Konfiguration über ein separates Git-Repository. Ja, es enthält alles drin /etc/nginx/
Verzeichnis.
Aber es wird nicht direkt auf dem Server synchronisiert, stattdessen wird ein Bash-Skript verwendet, um Änderungen abzurufen, die Konfiguration zu aktualisieren und die Nginx-Konfiguration neu zu laden.
Skriptbeispiel:
# Pull changes
git pull
# Sync changes excluding .git directory
rsync -qauh ./* "/etc/nginx" --exclude=".git"
# Set proper permissions
chmod -R 644 /etc/nginx
find /etc/nginx -type d -exec chmod 700 {} \;
# If you store SSL certs under `/etc/nginx/ssl`
# Set proper permission for SSL certs
chmod -R 600 /etc/nginx/ssl
chmod -R 400 /etc/nginx/ssl/*
# Reload nginx config
# but only if configtest is passed
nginx -t && service nginx reload
-
Also haben Sie es im Grunde in einem anderen Ordner (dem Git-Repo), arbeiten an diesem Ordner, übertragen es, dann zieht ein Skript Änderungen, aktualisiert die Konfiguration und lädt die Nginx-Konfiguration neu? Entschuldigung, ich möchte nur sicherstellen, dass ich Ihre Lösung zu 100% verstehe, übrigens danke!
– Juan Sebastián
24. Mai 2017 um 22:55 Uhr
-
@JuanSebastian richtig, du hast mich richtig verstanden. Auf diese Weise können Berechtigungen ordnungsgemäß festgelegt und ausgeschlossen werden
.git
Verzeichnis– dr.dimitru
24. Mai 2017 um 23:02 Uhr
-
Werden Berechtigungen nicht über Git beibehalten?
– Thomm
8. Mai 2019 um 21:46 Uhr
-
@thomthom ja! Dies ist der Fall, wenn wir uns nicht um Berechtigungen kümmern, es sei denn, sie werden an den Server geliefert. Und sieht im Beispiel intuitiver aus, als zuerst Berechtigungen zu setzen und dann Push/Pull, verschiedene Hosts, dies ist nur eine einfachere Art, meine Lösung zu erklären
– dr.dimitru
10. Mai 2019 um 6:57 Uhr