Detaillierte Erklärung der Verwendung von Nginx proxy_redirect

Detaillierte Erklärung der Verwendung von Nginx proxy_redirect

Heute bin ich auf ein kleines Problem gestoßen, als ich den Nginx-Reverse-Proxy für Apache verwendet habe. Es stellte sich heraus, dass der vom Backend-Apache verwendete Port 8080 war. Nachdem ich den Reverse-Proxy durchlaufen hatte, habe ich das Paket mit Wireshark erfasst und festgestellt, dass der Wert des Standortheaderfelds http://192.168.1.154:8080/wuman/ war. Wenn dies an den Client zurückgegeben wird, ist dies definitiv nicht zulässig. Es sieht seltsam aus und legt außerdem die spezifischen Informationen von Apache offen.

Daher wird hier die Proxy-Redirect von Nginx verwendet, um die Änderung des Standort-Headerfelds und des Aktualisierungs-Headerfeldwerts im vom Proxyserver zurückgegebenen Antwortheader anzugeben.

Nachfolgend ein kleiner Auszug aus dem Konfigurationsdokument von nginx

Server {
 hören Sie 80;
 Servername www.boke.com;
 Standort / {
  Proxy-Passwort http://192.168.1.154:8080;
  Proxy_Redirect aus;
 }
 }

An diesem Punkt verwenden wir curl, um die Ergebnisse anzuzeigen

[root@localhost nginx]# curl -I http://www.boke.com/wuman
HTTP/1.1 301 dauerhaft verschoben
Server: nginx
Datum: Do, 24. Dez. 2015 12:02:00 GMT
Inhaltstyp: text/html; Zeichensatz=iso-8859-1
Verbindung: Keep-Alive
Standort: http://192.168.1.154:8080/wuman/

Hier ist der Standort die Antwortheaderinformation mit der tatsächlichen Adresse und dem Port des Backend-Servers. Dies ist in der tatsächlichen Zeile nicht zulässig, daher planen wir hier, das Standortfeld im Antwortheader des Proxyservers über proxy_redirect zu ändern und an den Client zurückzugeben.

Server {
 hören Sie 80;
 Servername www.boke.com;
 Standort / {
  Proxy-Passwort http://192.168.1.154:8080;
  Proxy-Umleitung http://192.168.1.154:8080/wuman/ http://www.boke.com/wuman/;
 }

Server {
 hören Sie 80;
 Servername www.boke.com;
 Standort / {
  Proxy-Passwort http://192.168.1.154:8080;
  Proxy-Umleitung ~^http://192.168.1.154:8080(.*) http://www.boke.com$1;
 }

Dann überprüft curl die zurückgegebenen Ergebnisse

[root@localhost nginx]# curl -I http://www.boke.com/wuman
HTTP/1.1 301 dauerhaft verschoben
Server: nginx
Datum: Do, 24. Dez. 2015 12:08:34 GMT
Inhaltstyp: text/html; Zeichensatz=iso-8859-1
Verbindung: Keep-Alive
Standort: http://www.boke.com/wuman/

An diesem Punkt ist die Standortprüfung das gewünschte Ergebnis. Zu diesem Zeitpunkt haben wir durch Ersatz 301 auf unsere neue Seite umgeleitet

Quelle:

Proxy-Umleitung

Syntax: proxy_redirect [ Standard|Aus|Umleitungsersatz ]

Standardwert: proxy_redirect default

Felder verwenden: http, Server, Standort

Wenn Sie die Felder „Standort“ und „Aktualisieren“ im Antwortheader ändern müssen, der vom Proxyserver gesendet wird, können Sie sie mit diesem Befehl festlegen.

Angenommen, das vom Proxyserver zurückgegebene Standortfeld lautet: http://localhost:8000/two/some/uri/

Diese Anweisung:

Proxy_Redirect http://localhost:8000/zwei/ http://frontend/eins/;

Schreiben Sie das Feld „Standort“ in http://frontend/one/some/uri/ um.

Sie müssen keinen Servernamen in das Feld „Ersetzen“ schreiben:

Proxy_Redirect http://localhost:8000/two/ /;

Dadurch werden der Basisname und der Port des Servers verwendet, auch wenn es sich um einen anderen Port als 80 handelt.

Wenn der Parameter „Standard“ verwendet wird, wird er basierend auf den Einstellungen der Parameter „Standort“ und „Proxy_Pass“ bestimmt.

Beispielsweise sind die folgenden beiden Konfigurationen gleichwertig:

Standort / eins / {
 proxy_pass http: //upstream:port/zwei/; 
 Proxy_Redirect-Standard;
}
Standort / eins / {
 proxy_pass http: //upstream:port/zwei/; 
 proxy_redirect http: //upstream:port/zwei/ /eins/;
}

Es gibt mehrere Variablen, die in Anweisungen verwendet werden können:

Proxy-Umleitung http://localhost:8000/ http://$host:$server_port/;

Diese Anweisung kann manchmal wiederholt werden:

Proxy_Redirect-Standard;
Proxy-Umleitung http://localhost:8000//; Proxy-Umleitung ; /;

Der Parameter „off“ deaktiviert alle Proxy_Redirect-Direktiven in diesem Feld:

Proxy_Redirect aus;
Proxy_Redirect-Standard;
Proxy-Umleitung http://localhost:8000/ /; Proxy-Umleitung ; /;

Verwenden Sie diese Anweisung, um den Hostnamen zu den relativen Weiterleitungen hinzuzufügen, die vom Proxyserver ausgegeben werden:

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:
  • Zusammenfassung der drei Methoden zur Implementierung der Graustufenfreigabe in Nginx
  • Detaillierte Erläuterung der Veröffentlichung und Bereitstellung von Asp.Net Core (MacOS + Linux + Nginx)
  • Eine kurze Analyse von nginScript, der gerade von nginx veröffentlichten JavaScript-Funktion
  • Detaillierte Erklärung der Kontrolle des Zugriffsvolumens durch Nginx
  • Einrichten eines Proxyservers mit nginx
  • Versuch der Bereitstellung von Docker-Containern – Kommunikation mit mehreren Containern (Node+MongoDB+Nginx)
  • Beispiel für die Installation von nginx in einem angegebenen Verzeichnis
  • So konfigurieren Sie Nginx zur Unterstützung von IPv6 unter Linux
  • Detaillierte Erläuterung des Front-End- und Back-End-Bereitstellungstutorials basierend auf Vue und Nginx
  • So verwenden Sie Nginx zum Simulieren der Canary-Freigabe

<<:  Diagramm des Prozesses von der Deinstallation bis zur Installation von MySQL 5.7.18 yum unter Linux

>>:  jQuery Treeview-Baumstrukturanwendung

Artikel empfehlen

JavaScript implementiert Konstellationsabfragefunktion mit detailliertem Code

Inhaltsverzeichnis 1. Titel 2. Code 3. Ergebnisse...

Das WeChat-Applet ermöglicht horizontales und vertikales Scrollen

In diesem Artikelbeispiel wird der spezifische Co...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.27 winx64

In diesem Artikel wird die Installations- und Kon...

So deinstallieren und installieren Sie Tomcat neu (mit Bildern und Text)

Deinstallieren Sie tomcat9 1. Da die Installation...

So ändern Sie die inländische Imagequelle für Docker

Konfigurieren Sie den Beschleuniger für den Docke...

Grundlegende Referenztypen der erweiterten JavaScript-Programmierung

Inhaltsverzeichnis 1. Datum 2. RegExp 3. Original...

Auf den Alibaba Cloud Server Tomcat kann nicht zugegriffen werden

Inhaltsverzeichnis 1. Einleitung 2. Lösung 2.1 Ko...