Letztes Wochenende bereitete sich ein Bruderprojekt darauf vor, den Server zu erweitern, um bessere Dienste anbieten zu können. Einige Funktionen des Bruderprojekts wurden mir in Echtzeit bereitgestellt, und ich musste die entsprechenden Systemfunktionen vorübergehend blockieren. Da ich nginx verwendete, konnte ich nginx direkt so konfigurieren, dass es auf die reparierte Systemwartungsseite umleitete. Die Umleitung von Nginx ist eigentlich sehr einfach. Sie können entweder das Schlüsselwort „return“ oder „rewrite“ verwenden. Da die Umleitung direkt zur statischen Seite springt, sind keine nachfolgenden Vorgänge oder Aufzeichnungen erforderlich, sodass eine direkte permanente 301-Umleitung verwendet wird. Die Umleitung kann auf dem Server oder an einem bestimmten Standort konfiguriert werden. Nachfolgend finden Sie eine kurze Einführung zu beiden Optionen. Im Server konfigurieren: http { Server{ hören Sie 80; Servername A.com; # Wählen Sie unten eine der Optionen „Zurückgeben“ oder „Umschreiben“ aus. Darunter ist upgrade.html die Eingabeaufforderungsseite, die ich selbst geschrieben habe. Return 301 http://B.com/upgrade.html; # neu schreiben ^/(.*)$ http://B.com/upgrade.html permanent; location / { # Folgender Konfigurationsinhalt wird hier weggelassen} } } Oder konfigurieren Sie am Standort: http { Server{ hören Sie 80; Servername A.com; Standort / { umschreiben ^/(.*)$ http://B.com/upgrade.html permanent; # Folgender Konfigurationsinhalt wird hier weggelassen} } } Aus den obigen Beispielen können wir ersehen, dass „return“ eine 301-Parameterumleitung verwendet und „rewrite“ eine permanente (natürlich können Sie auch „break“ und „last“ verwenden. Wenn Sie den Unterschied wissen möchten, schauen Sie bitte selbst nach). Ich weiß nicht, ob Sie bemerkt haben, dass in den beiden obigen Beispielen A.com verwendet wird, um auf B.com umzuleiten. Ich habe versucht, A.com zu verwenden, um direkt auf A.com/upgrade.html umzuleiten, und es wird eine Fehlermeldung ausgegeben, die besagt, dass es zu viele Wiederholungen gibt, was bedeutet, dass es in eine Endlosschleife gerät. Wenn Sie mehrere Domänennamen gleichzeitig verwalten, können Sie A so konfigurieren, dass B umgeleitet wird. Was aber, wenn es nur einen Domänennamen A gibt? Zu diesem Zeitpunkt wird die if-Bedingung zur Beurteilung verwendet. Hier nehmen wir die Konfiguration im Server als Beispiel: http { Server{ hören Sie 80; Servername A.com; # Beachten Sie, dass nach „if“ ein Leerzeichen stehen muss! ! ! wenn ($request_uri !~ "/upgrade.html$") { Rückgabewert 301 http://A.com/upgrade.html; } Standort / { # Folgender Konfigurationsinhalt wird hier weggelassen} } } Das obige Beispiel zeigt, dass, wenn der Zugriffspfad /upgrade.html nicht enthält, eine Weiterleitung zu upgrade.html erfolgt. Zu diesem Zeitpunkt kann die Weiterleitung erfolgreich sein, und es wird keine Aufforderung für zu viele Wiederholungen angezeigt. Es gibt jedoch ein weiteres Problem, nämlich, dass die Bilder in upgrade.html nicht angezeigt werden können. Ich habe keine Zeit, zu untersuchen, wie ich die Weiterleitung der Bilder vermeiden kann. Ich werde später mehr hinzufügen, wenn ich Zeit habe. Beim Testen der if-Bedingung bin ich auf eine besondere Falle gestoßen, nämlich dass nach dem Hinzufügen der if-Bedingung und dem Neustart von nginx eine Fehlermeldung angezeigt wurde: Der Job für nginx.service ist fehlgeschlagen, da der Kontrollprozess mit einem Fehlercode beendet wurde. Weitere Informationen finden Sie unter „systemctl status nginx.service“ und „journalctl -xe“. Geben Sie systemctl status nginx.service ein, um die Fehlerinformationen anzuzeigen, einschließlich nginx: [emerg] unbekannte Anweisung „if($request_uri“ Fehler. Ich habe die Antwort gefunden. Es stellt sich heraus, dass nach „if“ ein Leerzeichen stehen muss!!! Das ist schade. In den Artikeln im Internet, in denen nginxif vorgestellt wird, wurden solch wichtige Informationen nicht erwähnt … Danke für die Info: Nach „if“ muss ein Leerzeichen stehen: https://blog.csdn.net/palet/article/details/103394236 Zurückgeben und in nginx neu schreiben: https://blog.csdn.net/u010982507/article/details/104025717 Wissenspunkte-ErgänzungKonfigurieren Sie nginx so, dass bei der Eingabe einer beliebigen Adresse auf die Wartungsseite umgeleitet wird Hinweis: Konfigurieren Sie nginx so, dass bei der Eingabe einer beliebigen Adresse auf die Wartungsseite umgeleitet wird Server { hören Sie 80; Wurzel /xxx/xxx/src; Index Index.html Index.htm; Servername test.xxx.com; setze $flag 0; wenn ($request_uri !~ "(/static/.*)$"){ setze $flag "${flag}1"; } wenn ($request_uri !~ "/502.html$" ){ setze $flag "${flag}2"; } wenn ($flag = "012") { umschreiben ^(.*) http://test.xxx.com/502.html permanent; } Standort /{ ... Oben finden Sie die Details zur Nginx-Umleitung auf die Systemwartungsseite. Weitere Informationen zur Wartungsseite der Nginx-Umleitung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Beispiele für minimalistisches Website-Design
>>: Lösung für das Textüberlaufproblem auf CSS-Flex-Basis
Kürzlich sagten einige Freunde, dass sie nach der...
Inhaltsverzeichnis Vorwort 1. Herkömmliche Vue-Ko...
Ein Kollege hat mir einmal gesagt, ich solle eine...
mysqldump-Tool-Sicherung Sichern Sie die gesamte ...
In tatsächlichen Projekten gibt es Beziehungen zw...
Es handelt sich dabei ausschließlich um Webseiten...
mysql bereinigt Binlog-Protokolle korrekt Vorwort...
Inhaltsverzeichnis Vorwort Schritt Vorwort Heute ...
Die Kompatibilität der Browser wird immer besser....
Konfigurieren Sie zunächst die Projektartefakte K...
1. Absoluter Pfad Zunächst einmal bezieht sich de...
Installieren Sie zunächst den OpenSSH-Server im D...
Inhaltsverzeichnis Linux - Dateideskriptor, Datei...
MySQL-Datenbank stürzt nach Eingabe von Passwort ...
1. Hintergrund, der durch CSS übergeben werden mu...