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

Zusammenfassung des Speicherorts und Tipps für Docker-Konfigurationscontainer

Tipps zur Verwendung von Docker 1. Bereinigen Sie...

JavaScript zum Implementieren einer einfachen Uhr

In diesem Artikelbeispiel wird der spezifische Co...

Was muss ich tun, wenn ich einen fehlerhaften MySQL-Befehl abbrechen möchte?

Ich habe einen falschen MySQL-Befehl eingegeben u...

Linux /etc/network/interfaces Konfigurationsschnittstellenmethode

Die Datei /etc/network/interfaces wird in Linux z...

Starten Sie die auf Docker basierende nginxssl-Konfiguration

Voraussetzungen Ein Cloud-Server (centOS von Alib...

JavaScript zum Erzielen des JD.com-Blitzverkaufseffekts

In diesem Artikel wird der spezifische JavaScript...

Eine kurze Erläuterung des Navigationsfensters in Iframe-Webseiten

Eine kurze Erläuterung des Navigationsfensters in...

Viewport-Parameter für mobile Browser (Web-Frontend-Design)

Mobile Browser platzieren Webseiten in einem virtu...

Vue realisiert Preiskalendereffekt

In diesem Artikelbeispiel wird der spezifische Co...

Docker: Zeigen Sie den Mount-Verzeichnisvorgang des Containers an

Nur Informationen zum Mount-Verzeichnis des Docke...

Grafisches Tutorial zur Installation der 64-Bit-Desktopversion von Centos 7

Wenn Sie der Meinung sind, dass das System langsa...

JavaScript implementiert eine verschiebbare Modalbox

In diesem Artikel wird der spezifische JavaScript...