Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie einen Reverse-Proxy mit Nginx in PHP

So implementieren Sie einen Reverse-Proxy mit Nginx in PHP

黄舟
黄舟Original
2017-09-21 09:14:073700Durchsuche

Dieser Artikel stellt hauptsächlich die Methode zur Verwendung von Nginx zur Implementierung von Reverse-Proxy in PHP vor. Es hat einen gewissen Referenzwert.

1. Proxy-Server

1. Was ist ein Proxyserver?

Ein Proxyserver wird nicht direkt an den gesendet Zielhost, wird aber zuerst an den Proxyserver gesendet. Nachdem der Proxydienst die Anfrage des Clients akzeptiert hat, sendet er sie an den Host, empfängt die vom Zielhost zurückgegebenen Daten und speichert sie auf der Festplatte des Proxyservers sendet es dann an den Kunden.


2. Warum einen Proxyserver verwenden

1) Zugriffsgeschwindigkeit verbessern

Da die vom Zielhost zurückgegebenen Daten auf der Festplatte des Proxyservers gespeichert werden, werden die Daten beim nächsten Zugriff des Kunden auf dieselben Site-Daten direkt von der Festplatte des Proxyservers gelesen spielt eine Cache-Rolle, insbesondere bei beliebten Websites, die die Anfragegeschwindigkeit deutlich erhöhen können.

2) Firewall-Funktion

Da alle Client-Anfragen über den Proxyserver auf die Remote-Site zugreifen müssen, können auf dem Proxyserver Einschränkungen festgelegt werden, um bestimmte unsichere Informationen zu filtern.

3) Zugriff auf unzugängliche Zielseiten über Proxyserver

Es gibt viele entwickelte Proxyserver im Internet. Wenn der Zugriff eingeschränkt ist, können Clients über uneingeschränkte Proxyserver auf die Zielseite zugreifen Der von uns verwendete Umgehungsbrowser verwendet zwar einen Proxyserver, kann aber auch direkt auf das externe Netzwerk zugreifen.

2. Reverse-Proxy vs. Forward-Proxy

1. Was ist ein Reverse-Proxy?

Der Forward-Proxy wird zwischen dem Client und dem Zielhost installiert. Er dient nur dazu, die Verbindungsanfrage vom internen Netzwerk an das Internet weiterzuleiten. Der Client muss einen Proxyserver angeben und die Anfrage direkt an das Web senden HTTP-Anfragen werden an den Proxyserver gesendet.


Der Reverse-Proxy-Server wird serverseitig eingerichtet. Er entlastet den Server, indem er häufig angeforderte Seiten puffert und Client-Anfragen an das interne Netzwerk weiterleitet . Der Zielserver gibt die vom Server erhaltenen Ergebnisse an den Client zurück, der eine Verbindung im Internet anfordert. Zu diesem Zeitpunkt erscheinen der Proxyserver und der Zielhost als Server.


2. Was sind die Hauptanwendungen von Reverse Proxy?

Viele große Websites verwenden mittlerweile Reverse-Proxys. Neben der Verhinderung bösartiger Angriffe aus dem externen Netzwerk auf Intranetserver, Caching zur Reduzierung des Serverdrucks und Zugriffssicherheitskontrolle kann es auch einen Lastausgleich durchführen und Benutzeranfragen auf mehrere Server verteilen.

3. Richtungs-Proxy-Server Nginx

Nginx, als beliebter Reverse-Proxy-Server in den letzten Jahren, wird auf dem Zielhost installiert und wird hauptsächlich zur Weiterleitung von Client-Anfragen verwendet . Es gibt mehrere HTTP-Server im Hintergrund, die Dienste bereitstellen. Die Funktion von Nginx besteht darin, die Anfrage an den nachfolgenden Server weiterzuleiten und zu entscheiden, welcher Zielhost die aktuelle Anfrage bearbeiten soll. Im Folgenden wird gezeigt, wie Nginx für die Funktion konfiguriert wird.

1. Simulieren Sie n http-Server als Zielhosts

Verwenden Sie zum Testen einfach 2 Tomcat-Instanzen, um zwei http-Server zu simulieren, und ändern Sie die Tomcat-Ports auf 8081 bzw. 8082

2. Konfigurieren Sie den IP-Domänennamen

192.168.72.49 8081.max.com

192.168.72.49 8082.max.com

3. Konfigurieren Sie nginx.conf


upstream tomcatserver1 {   
server 192.168.72.49:8081;   

 } 

upstream tomcatserver2 {    
server 192.168.72.49:8082;   

} 

 server {    

     listen    80;      

    server_name 8081.max.com;      
    #charset koi8-r;      
    #access_log logs/host.access.log main;      
    location / {       
     proxy_pass  http://tomcatserver1;       

     index index.html index.htm;     

 }      

} 

server {     

      listen    80;     
     server_name 8082.max.com;      
      #charset koi8-r;      
      #access_log logs/host.access.log main;      
     location / {       
     proxy_pass  http://tomcatserver2;       
     index index.html index.htm;     

  }       

 }

Prozess:

1) Browserzugriff auf 8081.max.com und Suchen des Servers 192.168.72.49 über die Auflösung des Domänennamens der lokalen Hostdatei (Installieren Sie nginx )

2) Der Nginx-Reverse-Proxy akzeptiert Clientanforderungen, findet den Serverknoten mit dem Servernamen 8081.max.com und leitet die Anforderung gemäß dem HTTP-Pfad entsprechend Proxy_Pass, der Portnummer, an den Upstream-Tomcatserver1 weiter ist der Tomcat-Server von 8081.

4. Effektanzeige

Anfrage 8081.max.com, tomcat1 empfängt und kehrt zur Startseite zurück

Anfrage 8082.max .com, tomcat2 Empfangen, zurück zur Startseite


4. Zusammenfassung

Durch Analyse ist es nicht schwer Am Beispiel von Baidu kommt man zu dem Schluss, dass, wenn sich die IP des Computers und die IP des Baidu-Servers (Zielhost) im selben Netzwerksegment befinden, das Senden einer Anfrage innerhalb des LAN gleicht und die Geschwindigkeit gleich ist extrem schnell.

Wenn dieser Bedarf jedoch nicht gedeckt werden kann und Sie dennoch eine bessere Antwort auf die Anfrage erreichen möchten, kann der Baidu-Server über The eine öffentliche IP im selben Netzwerksegment wie der Zielserver bereitstellen, bei der es sich um die IP des Reverse-Proxy-Dienstes handelt Der Proxy-Server leitet die Client-Anfrage weiter und bestimmt, welcher der N Server im Hintergrund die Anfrage bearbeitet. Da sich der Reverse-Proxy-Server im selben Netzwerksegment wie der Zielhost befindet, ist die Zugriffsgeschwindigkeit sehr hoch.

Wenn Nginx als Reverse-Proxy-Server verwendet wird, ist es einer von vielen Reverse-Proxy-Servern. Durch einfache Konfiguration kann die Client-Anfrage durch Angabe der Server-IP oder der Domänennamenadresse zur Verarbeitung weitergeleitet werden . fragen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Reverse-Proxy mit Nginx in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn