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
Aus verschiedenen Gründen müssen Sie manchmal den...
Shell-Skript #!/bin/sh # Aktuelles Verzeichnis CU...
Einführung in das Layout des HTML-Seitenquellcode...
Als ich heute jemandem beim Anpassen des Codes ha...
Inhaltsverzeichnis Drag & Drop-Implementierun...
Inhaltsverzeichnis Vorwort Was sind erstellbare S...
Verwenden Sie js, um den Lichtschalter zu Ihrer R...
1. Neuen Benutzer hinzufügen Nur lokalen IP-Zugri...
Socat muss vor der Installation von rabbitmq inst...
Als ich kürzlich an einem System zur Gesundheitse...
Lese- und Schreibvorgänge bei Angular Cookies, de...
In diesem Artikel wird der spezifische Code des b...
Zusammenfassung: Welche Methode sollte für die My...
Inhaltsverzeichnis 1. Vorbereitende Maßnahmen 1.1...
1. Daten vorbereiten Die folgenden Operationen we...