Nginx ist ein weit verbreiteter Hochleistungs-Webserver und Proxy-Server-Software in der Netzwerkarchitektur. Es ist bekannt für seine hervorragende Leistung und Zuverlässigkeit, vor allem in der Anwendung von Reverse-Proxy ist schwierig, seine Position zu erschüttern. Die korrekte Einrichtung des Nginx-Reverse-Proxy-Verzeichnisses ist ein wichtiges Thema, dem jeder Webentwickler und Administrator Aufmerksamkeit schenken sollte.
1. die Grundlagen des umgekehrten Proxy-Verzeichnisses
Um über Tipps zur Einrichtung des Nginx-Reverse-Proxy-Verzeichnisses zu sprechen, müssen wir zunächst die grundlegenden Prinzipien des Reverse-Proxy verstehen. Um es einfach auszudrücken, bezieht sich der Reverse-Proxy auf die Weiterleitung der Client-Anfrage an den Zielserver und die Rücksendung der Antwort an den Client, was dazu dient, die IP-Adresse des realen Servers, den Lastausgleich, die Cache-Beschleunigung und so weiter zu verbergen. In Nginx können Sie durch die Konfiguration der Standortdirektive des Proxyservers eine Regelanpassung und Verteilung von Anfragen an verschiedene URLs erreichen.
2. die Einrichtung von Pfadabgleichsregeln für Reverse-Proxy-Verzeichnisse
In Nginx ist die location-Direktive der Schlüssel zur Festlegung des Reverse-Proxy-Verzeichnisses. Sie kann die entsprechenden Konfigurationsregeln auf der Grundlage des URL-Pfads der Anfrage abgleichen und die Adresse des Zielservers angeben. Beim Einrichten des Reverse-Proxy-Verzeichnisses können wir übereinstimmende Symbole wie "=", "^~" und "~" verwenden, um die Genauigkeit der Regeln zu gewährleisten.
a) Verwenden Sie das Übereinstimmungssymbol "=", um den Verzeichnispfad genau zu bestimmen:
nginx
location = /Beispiel {
proxy_pass http://backend_server;
}
Mit der obigen Konfiguration leitet Nginx die Anfrage nur dann an den backend_server weiter, wenn der Anfragepfad "/example" lautet, was sich für Szenarien eignet, in denen ein bestimmtes Verzeichnis per Reverse Proxy übertragen werden muss.
b) Verwenden Sie das Übereinstimmungssymbol "^~" mit dem Präfix, um Verzeichnispfade abzugleichen:
nginx
Standort ^~ /Beispiel/ {
proxy_pass http://backend_server;
}
Die Notation "^~" wird verwendet, um anzuzeigen, dass Nginx alle URL-Anfragen, die mit "/example/" beginnen, an den Backend_server umkehren wird.Diese Präfix-Übereinstimmung wird üblicherweise verwendet, um alle Dateien und Unterverzeichnisse in einem Verzeichnis umzukehren. Verzeichnis und alle Dateien und Unterverzeichnisse.
c) Verwenden Sie das Übereinstimmungssymbol "~", um einen Verzeichnispfad zu finden:
nginx
location ~ ^/example/(?. *)$ {
proxy_pass http://backend_server/$subpath; }
}
Dieser auf regulären Ausdrücken basierende Abgleich ist relativ flexibel und ermöglicht es, bei Bedarf komplexere Regeln aufzustellen. In der obigen Konfiguration verwenden wir reguläre Ausdrücke, um den Unterpfad zu extrahieren und die Anfrage an den entsprechenden Unterpfad des backend_server weiterzuleiten. Zum Beispiel wird die Anfrage "/example/file.txt" an "http://backend_server/file.txt" weitergeleitet.
3 Überlegungen zur Konfiguration für mehrere Reverse-Proxy-Verzeichnisse
In der Praxis müssen wir oft mehrere Reverse-Proxy-Verzeichnisse konfigurieren. Bei der Verwendung mehrerer Standortrichtlinien müssen Sie jedoch auf die Priorität der Regeln achten: Nginx passt verschiedene Standortrichtlinien in der folgenden Reihenfolge an:
- Nginx wird die exakte Übereinstimmung der "="-Symbol-Direktive abgleichen, und wenn der Abgleich erfolgreich ist, wird er aufhören, andere Direktiven abzugleichen.
- Nginx wird die "^~"-Symbol-Direktive abgleichen, und wenn der Abgleich erfolgreich ist, wird er aufhören, andere Direktiven abzugleichen.
- Nginx wird die regulär passenden "~"-Symbol-Direktiven in der Reihenfolge der Konfiguration abgleichen und die erste erfolgreiche Übereinstimmung auswählen.
Wenn Sie mehrere Reverse-Proxy-Verzeichnisse konfigurieren, müssen Sie die Reihenfolge der einzelnen Standortanweisungen klug wählen, um Konflikte und Fehlleitungen zu vermeiden.
4. erweiterte Funktionen von Nginx-Reverse-Proxy-Verzeichnissen
Zusätzlich zur grundlegenden Pfadanpassung bietet Nginx einige erweiterte Funktionen zur weiteren Optimierung der Reverse-Proxy-Verzeichniseinstellungen.
a) Lastausgleich:
Durch die Einrichtung eines Reverse-Proxy-Verzeichnisses können wir Anfragen auf mehrere Back-End-Server verteilen, um einen Lastausgleichseffekt zu erzielen. Beispiel:
nginx
http {
upstream backend_servers {
Server backend1.beispiel.com;
Server backend2.example.com;
}
Server {
Standort /Beispiel/ {
proxy_pass http://backend_servers; }
}
}
}
In der obigen Konfiguration wird die Upstream-Direktive so konfiguriert, dass mehrere Backend-Server definiert werden, an die Nginx Anfragen aus dem Verzeichnis "/example/" weiterleitet.
b) Deaktivieren Sie die Zwischenspeicherung:
Manchmal wollen wir nicht, dass Nginx den Inhalt des Reverse-Proxys zwischenspeichert. Dazu können Sie die Direktive proxy_cache_bypass verwenden und sie auf true setzen, um das Caching zu deaktivieren.
nginx
Standort /Beispiel/ {
proxy_pass http://backend_server;
proxy_cache_bypass true;
}
Wenn die proxy_cache_bypass-Direktive in der obigen Konfiguration gesetzt ist, wird Nginx nichts mehr zwischenspeichern, wenn es das Verzeichnis "/example/" als Proxy verwendet.