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

Implementierung einer Warenkorbfunktion basierend auf Vuex

In diesem Artikelbeispiel wird der spezifische Co...

Vue implementiert Upload-Komponente

Inhaltsverzeichnis 1. Einleitung 2. Ideen Zwei Mö...

Mehrere Möglichkeiten zum Löschen von Arrays in Vue (Zusammenfassung)

Inhaltsverzeichnis 1. Einleitung 2. Mehrere Mögli...

So führen Sie ein Projekt mit Docker aus

1. Geben Sie das Verzeichnis ein, in dem Ihr Proj...

Webdesign muss auch zunächst eine umfassende Bildpositionierung der Website haben

⑴ Der Inhalt bestimmt die Form. Reichern Sie zuers...

Teilen Sie die 15 besten HTML/CSS-Design- und Entwicklungsframeworks

Professionelles Webdesign ist komplex und zeitint...