Codebeispiel für das Nutzungsszenario der Nginx-Domänenweiterleitung

Codebeispiel für das Nutzungsszenario der Nginx-Domänenweiterleitung

Szenario 1: Aufgrund von Serverbeschränkungen ist nur ein Port zur Außenwelt geöffnet, es muss jedoch eine andere externe Netzwerkumgebung angefordert werden. Daher wird auf dem Transitserver nginx zum Weiterleiten der Daten verwendet.

erreichen:

Server {
 hören Sie 8051;
 Servername localhost;
 
 Standort /Lizenz/ {
      Proxy-Passwort http://xxx.xxx.xxx.xxx:8058/;
 }
 
 Standort / {
      Proxy-Passwort http://xxx.xxx.xxx.xxx:8051/; } }

Besonderer Hinweis:

Hinweis: Wenn es sich hier um die Weiterleitung des Dateiuploads handelt, fügen Sie unter Servername client_max_body_size 100m hinzu;

Auf die Weiterleitungsadresse des Domänennamens und den Proxy-Pass muss ein "/" folgen, da es sonst zu einer abnormalen Weiterleitung kommt

Wenn Sie beim Konfigurieren der Proxy-Weiterleitung proxy_pass in nginx der URL nach proxy_pass / hinzufügen, bedeutet dies den absoluten Stammpfad.
Wenn kein / vorhanden ist, handelt es sich um einen relativen Pfad und der entsprechende Pfadteil wird ebenfalls als Proxy weitergeleitet.

Nehmen Sie an, dass auf die folgenden vier Situationen jeweils über http://192.168.1.1/proxy/aerchi.html zugegriffen wird.

Der Erste:

Standort /Proxy/ {
Proxy-Passwort http://127.0.0.1/;
}

Proxy zur URL: http://127.0.0.1/aerchi.html

Der zweite Typ (im Vergleich zum ersten Typ, mit einem / weniger am Ende)

Standort /Proxy/ {
Proxy-Passwort http://127.0.0.1;
}

Proxy zur URL: http://127.0.0.1/proxy/aerchi.html

Der dritte Typ:

Standort /Proxy/ {
Proxy-Passwort http://127.0.0.1/aaa/;
}

Proxy zur URL: http://127.0.0.1/aaa/aerchi.html

Der vierte Typ (im Vergleich zum dritten Typ, mit einem / weniger am Ende)

Standort /Proxy/ {
Proxy-Passwort http://127.0.0.1/aaa;
}

Proxy zur URL: http://127.0.0.1/aaaaerchi.html

Szenario 2: Aus geschäftlichen Gründen muss ein Satz Front-End-Codes zwei Back-End-Adressen zugeordnet werden. Daher ist eine Unterscheidung und Weiterleitung auf der Schnittstelle erforderlich. Bei der Weiterleitung muss das Unterscheidungszeichen entfernt werden.

erreichen:

Server {
  hören Sie 0.0.0.0:8204;
  Servername localhost;
  #Stammverzeichnis der statischen Seite E:\xxxxxxx;
  #Standard-Homepage-Index /index.html;
  Proxy_set_header Host $http_host;       
  Proxy_Set_Header X-Real-IP $Remote_Addr;       
  proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  #Proxy_Cookie-Pfad /* /*;
  Maximale Körpergröße des Clients: 100 m;
    
  location ~*/wx/(.*) {#Dynamische Seiten danach unterscheiden, ob die Schnittstelle /wx/# enthält und diese zur Verarbeitung an Tomcat übergeben, wenn (!-e $request_filename) {
        proxy_pass http://127.0.0.1:8091/$1;#Wenn Sie zum Backend gehen, müssen Sie /wx entfernen}
  }
  Standort / {
    # Speicherort der Cacheeinstellungen des Benutzerbrowsers ~* \.(css|js|jpg|jpeg|gif|png|swf|htm|html|json|xml|svg|woff|ttf|eot|map|ico)$ {
      läuft ab -1;
      if (-f $Anforderungsdateiname) {
        brechen;
      }
    }
    # Dynamische Seite, zur Verarbeitung an Tomcat übergeben if (!-e $request_filename) {
      Proxy-Passwort http://127.0.0.1:8092;
    #Proxy_Cookie-Pfad /* /*;
    }
  }

  Fehlerseite 500 502 503 504 /50x.html;
  Standort = /50x.html {
    Stamm-HTML;
  }
}

Besonderer Hinweis:

1. Proxy_set_header Host $http_host;

Die Anforderungsheader werden nicht geändert.

2. proxy_set_header Host Host; wenn der Header der Client-Anforderung diesen Header nicht enthält, wird die an den Backend-Server weitergeleitete Anforderung diesen Header nicht enthalten. In diesem Fall wird Host verwendet. Wenn der Header der Clientanforderung diesen Header nicht enthält, enthält die an den Backend-Server weitergeleitete Anforderung diesen Header auch nicht. In diesem Fall wird Host verwendet. Wenn der Header der Clientanforderung diesen Header nicht enthält, enthält die an den Backend-Server weitergeleitete Anforderung diesen Header auch nicht. In diesem Fall wird die Hostvariable verwendet. Ihr Wert ist der Wert des Felds „Host“, wenn die Anforderung den Anforderungsheader „Host“ enthält, und der primäre Domänenname des virtuellen Hosts, wenn die Anforderung den Anforderungsheader „Host“ nicht enthält.

3. proxy_set_header Host-Host: Host:Host:Proxy-Port;

Der Servername kann zusammen mit dem Port des Backend-Servers übergeben werden:

4. Wenn der Wert eines Anforderungsheaders leer ist, wird der Anforderungsheader nicht an den Backend-Server gesendet:

proxy_set_header Accept-Kodierung "";

5. Die echte IP-Adresse des Benutzers wird an den Backend-Server weitergeleitet

Proxy_Set_Header Host $host;
proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
Proxy_Set_Header X-Real-IP $Remote_Addr;

Szenario 3: Der vorherige Code wird mit Vue implementiert. Vue hat keine bestimmte Seite und greift auch über /xx/xx auf Ressourcen zu. Zu diesem Zeitpunkt muss es von der Hintergrundschnittstelle unterschieden werden

erreichen:

Sie können durch Sonderzeichen wie „#“ unterschieden werden. Anfragen mit # sind standardmäßig statische Ressourcen.

Standort ~* \.(#|css|js|jpg|jpeg|gif|png|swf|htm|html|json|xml|svg|woff|ttf|eot|map|ico)$ {
  läuft ab -1;
  if (-f $Anforderungsdateiname) {
    brechen;
  }
}

Szenario 4: Aufgrund von Serverbeschränkungen erfordert der Datenbankzugriff eine Nginx-Weiterleitung

erreichen:

Strom {
  Upstream-Cloudsocket
    Hash $remote_addr konsistent;
    Tatsächliche IP der Serverdatenbank: 3306, Gewicht = 5, max. Fehler = 3, Fehler-Timeout = 30 s;
  }
 
 Server {
    listen 127.0.0.1:8058; #Lokaler Proxy-Port proxy_connect_timeout 10s;
    proxy_timeout 300s;#Legen Sie das Timeout zwischen dem Client und dem Proxy-Dienst fest. Wenn innerhalb von 5 Minuten keine Aktion ausgeführt wird, wird die Verbindung automatisch getrennt.
    Proxy_Pass-Cloudsocket;
  }

}

Besondere Aufmerksamkeit:

Der Stream befindet sich auf der gleichen Ebene wie http, also platzieren Sie ihn nicht in http

Szenario 5: Beim Zugriff auf einen Domänennamen müssen Sie auf eine andere Adresse umleiten

erreichen:

Server {
  hör zu 7000;
  Servername localhost;
  Maximale Körpergröße des Clients: 100 m;

  Standort = / {
    umschreiben ^(.*) https://www.baidu.com permanent;
  }
}

Besondere Aufmerksamkeit:

Nachdem diese Regel abgeglichen wurde, fahren Sie mit der Übereinstimmung mit der neuen Standort-URI-Regel fort
break Diese Regel wird nach dem Abgleich beendet und es werden keine weiteren Regeln abgeglichen
Die Umleitung gibt eine temporäre 302-Umleitung zurück.
permanent gibt eine permanente 301-Weiterleitung zurück

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So richten Sie Nginx so ein, dass der Domänenname an den angegebenen Port weitergeleitet wird
  • Implementierung der Nginx-Domänennamenweiterleitung
  • Verwenden des Nginx-Forward-Proxys zur Implementierung einer Analyse des Intranet-Domänennamen-Weiterleitungsprozesses
  • Nginx Reverse Proxy wird für die Weiterleitung von Intranet-Domänennamen verwendet
  • Implementierung von HTTP- und HTTPS-Diensten mit Nginx-Reverse-Proxy für mehrere Domänennamen
  • Verwenden Sie nginx + sekundären Domänennamen + https-Unterstützung
  • Nginx definiert die Zugriffsmethode für Domänennamen
  • nginx+tomcat-Beispiel für den Zugriff auf das Projekt über den Domänennamen

<<:  Der Unterschied zwischen JS-Pre-Parsing und Variablen-Promotion im Web-Interview

>>:  Probleme und Lösungen beim Verbinden des Knotens mit der MySQL-Datenbank

Artikel empfehlen

H-Tags sollten bei der Erstellung von Webseiten sinnvoll verwendet werden

HTML-Tags haben spezielle Tags zur Handhabung des ...

Detaillierte Erläuterung der 6 Möglichkeiten der JS-Vererbung

Vererbung von Prototypketten Die Prototypenvererb...

Anfänger lernen einige HTML-Tags (2)

Verwandter Artikel: Anfänger lernen einige HTML-Ta...

Vue-Element el-transfer fügt Drag-Funktion hinzu

Das Core Asset Management Project erfordert, dass...

Frage zu benutzerdefinierten Attributen von HTML-Tags

In der vorherigen Entwicklung haben wir die Stand...

Vue implementiert Login-Sprung

In diesem Artikelbeispiel wird der spezifische Co...

Die Qualitäten und Fähigkeiten, die ein Webdesigner haben sollte

Webdesign ist eine aufstrebende Randbranche, die n...

Detaillierte Erläuterung des Mysql Self-Join-Abfragebeispiels

Dieser Artikel beschreibt die Mysql-Self-Join-Abf...