Konfigurieren Sie nginx so, dass es zur Systemwartungsseite umleitet

Konfigurieren Sie nginx so, dass es zur Systemwartungsseite umleitet

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änzung

Konfigurieren 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:
  • So leiten Sie den Nginx-Verzeichnispfad um
  • Detaillierte Erläuterung der Nginx-Konfiguration URL-Umleitung-Reverse-Proxy
  • Detaillierte Erklärung der Umleitungsfunktion in Nginx
  • So richten Sie eine 301-Umleitung in der Ngin-Konfiguration und eine 301-Umleitung im Nginx-Unterverzeichnis ein

<<:  Beispiele für minimalistisches Website-Design

>>:  Lösung für das Textüberlaufproblem auf CSS-Flex-Basis

Artikel empfehlen

1 Minute Vue implementiert Rechtsklickmenü

Inhaltsverzeichnis Rendern Installieren Code-Impl...

Erläuterung der JavaScript-Funktionssyntax

Inhaltsverzeichnis 1. Gewöhnliche Funktionen 2. P...

Gängige Methoden zur Optimierung der Docker-Imagegröße

Die Docker-Images, die wir normalerweise erstelle...

Detaillierte Schritte zur Installation und Verwendung von VMware ESXi 6.5

Inhaltsverzeichnis Einführung Architektur Vorteil...

Vue kapselt die öffentliche Funktionsmethode zum Exportieren von Excel-Daten

vue+element UI kapselt eine öffentliche Funktion ...

10 sehr gute CSS-Fähigkeiten sammeln und teilen

Hier können Sie durch geschickten Einsatz von CSS-...

Schreiben eines Schere-Stein-Papier-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

my.cnf-Parameterkonfiguration zur Optimierung der InnoDB-Engine-Leistung

Ich habe im Internet unzählige my.cnf-Konfigurati...

Detaillierte Erklärung der Abkürzung von State in React

Vorwort Was ist Staat Wir alle sagen, dass React ...

MySQL 5.7.20 Win64 Installations- und Konfigurationsmethode

mysql-5.7.20-winx64.zipInstallationspaket ohne In...

Kurze Einführung und Verwendung von Table und div

Web-Frontend 1 Studierendenausweis Name Geschlech...