Überschreiben einzelner in NGINX gehosteter Websites, um eine Wartungsseite anzuzeigen

Überschreiben einzelner in NGINX gehosteter Websites, um eine Wartungsseite anzuzeigen

Wir haben eine Architektur, bei der wir mehrere Sites in NGINX hosten. Jede NGINX-Site hat ihre eigene Konfiguration. Jede dieser Sites verweist auf eine gemeinsame Codebasis, aber auf einen anderen Domänennamen und das zugehörige SSL.

Was wir während der Wartung tun möchten, ist, eine gemeinsame Maintenance.html-Seite anzuzeigen, sobald die Anforderung für die Seite erfolgt. Wir können zwar in die Datei website.conf für jede Website gehen und eine Umschreibregel einfügen, aber das ist keine vollständige Lösung - es ist eher ein Hack, den wir vermeiden möchten.

Wir möchten dies in der Datei nginx.conf auf Stammebene implementieren, wobei jede über (443) eingehende Anfrage abgefangen (bevor ihre eigene Konfigurationsdatei geladen wird) und auf eine gemeinsame Maintenance.html-Seite umgeleitet werden soll.

Wie kann dies auf der Ebene der Datei nginx.conf erreicht werden?

Danke

Antwort1

Sie können alle Hosts auf einmal bearbeiten (und vergessen Sie nicht, eine Vorlage zu bearbeiten, aus der diese erstellt werden) und danach müssen Sie sie nie wieder alle bearbeiten.

Du erstellst eine leere Datei, die du zum Beispiel "all_vhosts_override" nennen kannst. Du fügst include "all_vhosts_override";oben in jeder Vhost-Definition vor allem locationund alias-Einträge hinzu.

Wenn Sie etwas in allen virtuellen Hosts gleichzeitig überschreiben müssen, fügen Sie dieser Datei Anweisungen hinzu und laden nginx neu. Alle virtuellen Hosts erhalten die Konfiguration aus dieser einzelnen Datei, Sie müssen ihre individuellen Konfigurationen nicht aktualisieren. Leeren Sie einfach die Override-Datei, wenn Sie Ihre Wartung abgeschlossen haben, und laden Sie sie erneut.

verwandte Informationen