
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
要谈论Nginx反向代理目录的设置技巧,我们首先得了解反向代理的基本原理。简单来说,反向代理是指将客户端的请求转发给目标服务器,并将响应返回给客户端,起到隐藏真实服务器IP地址、负载均衡、缓存代理ip等作用。在Nginx中,通过配置代理服务器的location指令,可以实现对不同URL的请求进行规则匹配和分发。
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.

