Dieser Artikel stellt hauptsächlich den Prozess der Implementierung eines Richtungsproxys über nginx vor. Der Beispielcode in diesem Artikel ist sehr detailliert und hat einen gewissen Referenzwert für das Studium oder die Arbeit aller. Freunde in Not können darauf zurückgreifen. nginx implementiert Richtungsproxy 1. Was ist nginx Nginx ist ein sehr leichter HTTP-Server, der von Russen geschrieben wurde. Es handelt sich um einen leistungsstarken HTTP- und Reverse-Proxy-Webserver, der auch IMAP-/POP3-/SMTP-Dienste bereitstellt. Seine Merkmale sind, dass es weniger Speicher belegt und eine starke Parallelität aufweist. Tatsächlich ist die Parallelität von nginx tatsächlich besser als bei anderen Webservern desselben Typs. Zu den Website-Benutzern, die nginx verwenden, gehören: Baidu, JD.com, Sina, NetEase, Tencent, Taobao usw. 2. Was ist ein Agent? Proxyserver: Wenn der Client eine Anforderung sendet, sendet er sie nicht direkt an den Zielhost, sondern zuerst an den Proxyserver. Nachdem der Proxydienst die Anforderung des Clients akzeptiert hat, sendet er sie an den Host, empfängt die vom Zielhost zurückgegebenen Daten, speichert sie auf der Festplatte des Proxyservers und sendet sie dann an den Client. Zum Beispiel: Menschen in unserer Umgebung, die ein Haus mieten möchten 3. Szenario ohne Agent Wenn kein Proxy vorhanden ist, sind sowohl der Client als auch der Nginx-Server Clients. Der Client fordert den Server an und der Server antwortet direkt dem Client. 4. Unternehmensszenarien: Bei Internetanforderungen kann der Client Anforderungen häufig nicht direkt an den Server initiieren. Daher muss eine Kommunikation zwischen dem Client und dem Dienst implementiert werden. 5. Allgemeine Modi des Nginx-Proxydienstes Als Proxy-Dienst wird Nginx je nach Anwendungsszenario zusammengefasst. Der Proxy ist in Forward-Proxy und Reverse-Proxy unterteilt. 6. Proxy weiterleiten Weiterleitungsproxy: Client <-> Proxy-> Server: Ein einfaches Beispiel für die Anmietung eines Hauses wird von einem Forward-Agenten gegeben: A (Mieter) B (Makler) C (Vermieter) A (Kunde) möchte das Haus von C (Server) mieten, aber A (Kunde) kennt C (Server) nicht und kann es nicht mieten. B (Agent) kennt C (Server), der dieses Haus mieten kann, also bitten Sie B (Agent), Ihnen bei der Anmietung dieses Hauses zu helfen. ps: Bei diesem Vorgang kennt C (Server) A (Kunde) nicht, sondern nur B (Agent). C (Server) weiß nicht, dass A (Kunde) ein Haus gemietet hat, sondern weiß nur, dass das Haus an B (Agent) vermietet wurde. ------------------------------------------------------------------ Ein Forwardproxy wird zwischen dem Client und dem Zielhost eingerichtet und dient nur dazu, die Verbindungsanfragen vom internen Netzwerk zum Internet weiterzuleiten. Der Client muss einen Proxyserver angeben und die HTTP-Anfragen, die ursprünglich direkt an den Webserver gesendet wurden, an den Proxyserver senden. 7. Reverse-Proxy Reverse-Proxy: Client-1>Proxy<1> Der serverseitige Reverse-Proxy verwendet auch ein Beispiel aus der Hausvermietung: A (Client) möchte ein Haus mieten und B (Proxy) vermietet ihm das Haus. Zu diesem Zeitpunkt ist C (Server) tatsächlich der Vermieter. B (Makler) ist der Vermittler, der das Haus an A (Kunde) vermietet. Während dieses Vorgangs weiß A (Kunde) nicht, wer der Vermieter des Hauses ist, und er könnte denken, das Haus gehöre B (Makler). -------------------------------------------------------- Der Reverse-Proxy-Server wird serverseitig eingerichtet. Er entlastet den Server, indem er häufig aufgerufene Seiten zwischenspeichert und Client-Anfragen an den Zielserver im internen Netzwerk weiterleitet. Außerdem gibt er die vom Server erhaltenen Ergebnisse an den Client zurück, der eine Verbindung im Internet anfordert. Zu diesem Zeitpunkt erscheinen der Proxy-Server und der Zielhost für die Außenwelt als ein einziger Server. 8. Hauptanwendungen des Reverse-Proxys Viele große Websites verwenden mittlerweile Reverse-Proxys. Neben der Verhinderung böswilliger Angriffe auf interne Server aus dem externen Netzwerk, der Zwischenspeicherung zur Reduzierung der Serverbelastung und der Zugriffssicherheitskontrolle kann es auch einen Lastenausgleich durchführen und Benutzeranforderungen auf mehrere Server verteilen. 9. Vom Nginx-Proxy unterstützte Proxy-Protokolle http gehört zur siebten Schicht Anwendungsschicht Proxy Hypertext Transfer Protocol https Proxy http/https-Protokoll TCP gehört zur vierten Schicht Transportschicht Proxy tcp/dupxiey WebSocket wird zur Entwicklung des Proxys verwendet: http1.1 Long Link-Kommunikationsprotokoll GRPC-Proxy Go-Sprache Remote Call POP/IMAP-Proxy Mail-Sende- und Empfangsprotokoll RTMP-Proxy Streaming Media, Live-Übertragung 10.web01 Proxy konfigurieren [root@web01 php]# vim /etc/nginx/conf.d/blog.drz.com.conf Server { hören Sie 80; Servername blog.drz.com; Stammverzeichnis /code/wordpress; Index: Index.php; Index.html; Zugriffsprotokoll /var/log/nginx/blog.drz.com_access.log Haupt; Standort ~\.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $Dokumentstammsatz$fastcgi_script_name; fastcgi_params einschließen; } } Proxy-WordPress [root@lb01 ~]# vim /etc/nginx/conf.d/daili.conf Den Proxyserver von WordPress bearbeiten { hören Sie 80; Servername blog.drz.com; Standort / { Proxy-Passwort http://10.0.0.7; Proxy_Set_Header Host $http_host; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; Proxy_http_Version 1.1; Proxy_Verbindungstimeout 60 s; Proxy_Lese_Timeout 60 s; Proxy_Sendezeitüberschreitung 60 s; Proxy_Pufferung ein; Proxy-Puffergröße 8k; Proxy-Puffer 8 8k; } } root@lb01 ~]# nginx -t nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung nginx: Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich [root@lb01 ~]# nginx -s neu laden 11. Fügen Sie Anforderungsheaderinformationen hinzu, die an den Backend-Server gesendet werden # Wenn der Benutzer eine Anfrage stellt, lautet der Wert von HOST www.oldboy.com, sodass der Proxy-Dienst die Anfrage als www.oldboy.com an das Backend weiterleitet. Proxy_set_header Host $http_host; # Setzen Sie den Wert von $remote_addr in die Variable X-Real-IP ein. Der Wert von $remote_addr ist die IP-Adresse des Clients. Proxy_Set_Header X-Real-IP $Remote_Addr; #Der Client greift über den Proxy-Dienst auf den Backend-Dienst zu. Der Backend-Dienst zeichnet die tatsächliche Clientadresse über diese Variable auf: proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 12. Timeouts für TCP-Verbindung, Antwort, Rückgabe usw. vom Proxy zum Backend //Timeout für die Verbindung zum Nginx-Proxy und Backend-Server (Timeout für die Proxy-Verbindung) Syntax: proxy_connect_timeout-Zeit; Standard: proxy_connect_timeout 60s; Kontext: http, Server, Standort //Die Zeit, die der Nginx-Proxy auf die Antwort vom Backend-Server wartet. Syntax: proxy_read_timeout time; Standard: proxy_read_timeout 60s; Kontext: http, Server, Standort //Timeout-Zeit für die Rücksendung der Backend-Serverdaten an den Nginx-Proxy Syntax: proxy_send_timeout time; Standard: proxy_send_timeout 60s; Kontext: http, Server, Standort 13. Warum einen Proxy verwenden 1) Verbessern Sie die Zugriffsgeschwindigkeit. Da die vom Zielhost zurückgegebenen Daten auf der Festplatte des Proxyservers gespeichert werden, werden sie beim nächsten Zugriff des Clients auf dieselben Site-Daten direkt von der Festplatte des Proxyservers gelesen, der eine Caching-Funktion hat. Insbesondere bei beliebten Sites kann dies die Anforderungsgeschwindigkeit erheblich verbessern. 2) Firewall-Funktion: Da alle Client-Anfragen zum Zugriff auf die Remote-Site über den Proxy-Server laufen müssen, können auf dem Proxy-Server Beschränkungen festgelegt werden, um bestimmte unsichere Informationen herauszufiltern. 3) Zugriff auf unzugängliche Zielseiten über Proxyserver. Im Internet gibt es viele entwickelte Proxyserver. Wenn der Client nur über eingeschränkten Zugriff verfügt, kann er über einen uneingeschränkten Proxyserver auf die Zielseite zugreifen. Einfach ausgedrückt: Der Browser, den wir zum Umgehen der Firewall verwenden, verwendet einen Proxyserver. Obwohl wir nicht ins Ausland gehen können, können wir auch direkt auf das externe Netzwerk zugreifen. 14. Zusammenfassung Der Forward-Proxy-Agent ist der Client und bedient den Client. Der Reverse-Proxy-Agent ist der Server und bedient den Server. 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:
|
<<: MySQL implementiert Multi-Table-Assoziationsstatistiken (Unterabfragestatistiken) Beispiel
>>: Ausführliche Erklärung der Iteratoren in ECMAScript
Zwei Probleme, die bei der Installation von Docke...
1. Was ist Floating? Floaten bedeutet, wie der Na...
Vorwort: Das Jahr neigt sich dem Ende zu. Ist es ...
Dieser Artikel zeichnet das Installationstutorial...
Letzte Woche gab mir der Lehrer eine kleine Hausa...
Vorwort Es dauerte zwei Tage, um ein Puzzlespiel ...
Normalerweise müssen die von Benutzern hochgelade...
Inhaltsverzeichnis 1. Grundlegender Überblick übe...
In diesem Artikel wird der spezifische JavaScript...
1. Von der offiziellen Website herunterladen und ...
Inhaltsverzeichnis 0. Hintergrund 1. Installation...
Vorwort Ich bin bei der Arbeit auf folgende Situa...
Inhaltsverzeichnis 1. Map akzeptiert jeden Schlüs...
Verwenden Sie JavaScript, um eine Webseitenuhr zu...
Problembeschreibung: Wenn die Anzahl der asynchro...