Wie Nginx gleichzeitig Forward-Proxies einrichtet
Vor ein paar Tagen stellte mir ein kleiner Freund eine Frage: "Altes Eisen, ich habe gehört, dass Nginx gleichzeitig einen Forward-Proxy einrichten kann, ist das wahr? Wie richtet man das ein?" Um ehrlich zu sein, ist das eine ziemlich gute Frage, und Nginx, als Hochleistungs-Webserver und Reverse-Proxy-Server, kann das in der Tat. Lassen Sie mich also mit Ihnen erkunden, wie Nginx gleichzeitig Forward-Proxys einrichten kann!
Unterschied zwischen Forward und Reverse Proxy
Bevor wir erläutern, wie Nginx gleichzeitig Forward-Proxys einrichten kann, sollten wir zunächst den Unterschied zwischen Forward- und Reverse-Proxys klären. Wie der Name schon sagt, leitet ein Forward-Proxy Anfragen durch einen Proxy-Server weiter, so dass der Client nicht direkt auf den Zielserver zugreifen kann, während ein Reverse-Proxy Anfragen durch einen Proxy-Server weiterleitet, um die Anfrage des Clients an den Zielserver weiterzuleiten. Einfach ausgedrückt, sendet ein Forward-Proxy Anfragen anstelle des Clients, während ein Reverse-Proxy Anfragen anstelle des Servers empfängt.
Wie Nginx die Vorwärtsproxys implementiert
Nachdem wir nun den Unterschied zwischen Forward- und Reverse-Proxies verstanden haben, können wir uns damit befassen, wie Nginx Forward-Proxies implementiert. Im Folgenden werde ich den eigentlichen Code kombinieren, um ihn Schritt für Schritt zu erklären.
Zunächst müssen wir sicherstellen, dass Nginx installiert ist. Fügen Sie dann die folgende Konfiguration zur Nginx-Konfigurationsdatei hinzu (normalerweise nginx.conf):
http {
Server {
listen 80.
Standort / {
proxy_pass http://目标服务器的IP地址;
}
}
}
In der obigen Konfiguration haben wir die proxy_pass-Direktive von Nginx für den Forward-Proxy verwendet. Wenn eine Client-Anfrage den Nginx-Server erreicht, leitet Nginx die Anfrage auf der Grundlage der proxy_pass-Direktive in der Konfiguration an den Zielserver weiter. Auf diese Weise wird der Forward Proxy implementiert.
Konfiguration mehrerer Forward Proxies
Vielleicht werden sich einige von Ihnen fragen, dass die obige Konfiguration nur einen Forward-Proxy erreichen kann, was also, wenn ich mehrere Forward-Proxys gleichzeitig einrichten möchte? Nginx bietet einen sehr bequemen Weg, um unsere Bedürfnisse zu erfüllen.
Im Folgenden werde ich das Beispiel der Konfiguration von zwei Forward Proxies verwenden:
http {
Server {
listen 80.
Standort /proxy1 {
proxy_pass http://目标服务器1的IP地址;
}
Standort /proxy2 {
proxy_pass http://目标服务器2的IP地址; }
}
}
}
In der obigen Konfiguration haben wir verschiedene Standortblöcke für mehrere Forward-Proxys verwendet. Sie müssen lediglich verschiedene proxy_pass-Direktiven in verschiedenen Standortblöcken konfigurieren. Wenn der URL-Pfad einer Client-Anfrage mit dem entsprechenden Standortblock übereinstimmt, leitet Nginx die Anfrage an den entsprechenden Zielserver weiter.
Lastausgleich und Caching-Anwendungen
Neben der grundlegenden Forward-Proxy-Funktionalität bietet Nginx auch Load-Balancing- und Caching-Anwendungen, die unseren Proxy-Server leistungsfähiger und stabiler machen.
Lassen Sie uns zunächst die Anwendung des Lastausgleichs erklären. nginx bietet mehrere Lastausgleichsstrategien, wie Polling, IP-Hashing, Least-Connected usw. Wir müssen lediglich den Service-Knoten im Upstream-Abschnitt der Konfigurationsdatei hinzufügen. Alles, was wir tun müssen, ist, den Service-Knoten in den Upstream-Abschnitt der Konfigurationsdatei einzufügen. Hier ist ein Beispiel:
http {
vorgelagertes Backend {
Server IP-Adresse des Zielservers 1.
Server IP-Adresse des Zielservers 2.
}
Server {
listen 80.
Standort / {
proxy_pass http://backend;
}
}
}
In der obigen Konfiguration haben wir die Upstream-Direktive verwendet, um mehrere Serviceknoten zu definieren, und die Anfragen zur Lastverteilung über die proxy_pass-Direktive an diese Serviceknoten weitergeleitet. Auf diese Weise sind sowohl Zielserver 1 als auch Zielserver 2 in der Lage, Client-Anfragen gemäß der festgelegten Lastausgleichsrichtlinie zu bearbeiten.
Darüber hinaus unterstützt Nginx auch das Caching, d. h. die Zwischenspeicherung der Antwort auf bestimmte Anfragen, um die Zugriffsgeschwindigkeit zu erhöhen und die Serverlast zu verringern. Wir müssen lediglich die proxy_cache-Direktive in den location-Block der Konfigurationsdatei einfügen. Hier ist ein Beispiel:
http {
Server {
listen 80.
Standort / {
proxy_pass http://目标服务器的IP地址;
proxy_cache my_cache; proxy_cache_valid 200 302 10m; proxy_cache_valid
proxy_cache_valid 200 302 10m; proxy_cache_valid 200 302 10m;
}
}
}
In der obigen Konfiguration haben wir mit der Direktive proxy_cache einen Cache-Bereich definiert und mit der Direktive proxy_cache_valid die Gültigkeitsdauer des Caches festgelegt. Wenn eine Client-Anfrage bei Nginx eintrifft und die entsprechende Antwort im Cache vorhanden ist, wird der gecachte Inhalt direkt zurückgegeben, andernfalls wird die Anfrage an den Zielserver weitergeleitet.
Zusammenfassungen
Durch die Erklärung dieses Artikels glaube ich, dass Sie ein gewisses Verständnis dafür haben, wie man gleichzeitig einen Forward-Proxy für Nginx einrichtet. Der Unterschied zwischen Forward- und Reverse-Proxies, die Grundkonfiguration von Nginx, um Forward-Proxies zu erreichen, die Konfiguration mehrerer Forward-Proxies sowie die Anwendung von Load Balancing und Caching, das sind die Inhalte, die wir in der eigentlichen Anwendung beherrschen müssen. Ich hoffe, dieser Artikel kann Ihnen helfen! Wenn Sie Fragen haben, können Sie mir gerne eine Nachricht hinterlassen, um darüber zu diskutieren. Gemeinsam können wir Fortschritte machen und zusammen wachsen!