it-swarm.com.de

Was ist der Unterschied zwischen Load Balancer und Reverse Proxy?

Der Unterschied zwischen Load Balancer und Reverse Proxy ist mir nicht klar. Beide scheinen dasselbe Verhalten zu haben: Verteilen eingehender Anforderungen an Back-End-Server.

124
Morgan Cheng

Ihre Verwirrung ist vernünftig - sie sind oft dasselbe. Aber nicht immer. Wenn Sie sich auf einen Load Balancer beziehen, beziehen Sie sich auf eine ganz bestimmte Sache - einen Server oder ein Gerät, das eingehende Anforderungen auf zwei oder mehr Webserver verteilt, um die Last zu verteilen. Ein Reverse-Proxy weist jedoch normalerweise eine beliebige Anzahl von Funktionen auf:

  1. lastausgleich: wie oben beschrieben

  2. caching: Es kann Inhalte von den dahinter liegenden Webservern zwischenspeichern und dadurch die Belastung der Webserver verringern und statische Inhalte an den Anforderer zurückgeben, ohne dass die Daten von den Webservern abgerufen werden müssen.

  3. sicherheit: Es kann den/die Webserver schützen, indem es den direkten Zugriff aus dem Internet verhindert. Dies kann auf einfache Weise geschehen, indem nur die Webserver verschleiert werden, oder es kann einige aktivere Komponenten enthalten, die eingehende Anforderungen tatsächlich auf bösartigen Code überprüfen

  4. SSL-Beschleunigung: wenn SSL verwendet wird; Es kann als Endpunkt für diese SSL-Sitzungen dienen, sodass die Arbeitslast für die Verarbeitung der Verschlüsselung von den Webservern entlastet wird.

Ich denke, das deckt das meiste davon ab, aber es gibt wahrscheinlich ein paar andere Funktionen, die ich vermisst habe. Sicherlich ist es nicht ungewöhnlich, dass ein Gerät oder eine Software als Load Balancer/Reverse Proxy vermarktet wird, da die Funktionen so häufig gebündelt werden.

121
icky3000

Ein Reverse-Proxy ist auch spezifisch für Webserver.

Load Balancer können jedoch mit vielen anderen Protokollen umgehen. Während das Web (HTTP) heutzutage die große Idee ist, können auch Dinge wie DNS, Mail (SMTP, IMAP) usw. ausgeglichen werden. Es ist nur heutzutage, wenn die meisten Leute "Internet" oder "IP-Netzwerk" denken, denken sie an das Web. Es gibt eine Menge mehr Sachen da draußen, die vielleicht dunkler oder eher eine Nische sind.

26
DM

Während das Nettoergebnis (Verteilen von Anforderungen zwischen Servern) zwischen verschiedenen Load Balancern und Reverse-Proxys gleich ist, liegt der Unterschied in der Methode zum Verteilen der Anforderungen.

Einige Load Balancer gleichen den Datenverkehr mithilfe von DNS aus und lösen denselben Namen in einem Round-Robin-Verfahren in verschiedene IP-Adressen auf, um Anforderungen effektiv umzuleiten. Dies kann häufig bei Lastausgleichsanforderungen zwischen Rechenzentren oder anderen physischen Standorten hilfreich sein. Dies ist eine schlechte Wahl, wenn Sie ein "sofortiges" Failover benötigen, da Sie dem DNS-Server Ihres Kunden ausgeliefert sind, um die von Ihnen bereitgestellten TTL. GSS (Global Site Selector) von Cisco) zu berücksichtigen ) ist ein gutes Beispiel für einen DNS-basierten Lastenausgleich.

Andere Load Balancer schreiben Paket-Header, die für eine virtuelle IP bestimmt sind, in die reale IP eines Servers in einer Farm. Dies bietet einen Lastausgleich in Echtzeit und ein nahezu sofortiges Failover. Ein Beispiel hierfür wäre das CSM (Content Switching Module) von Cisco.

Beachten Sie, dass in beiden obigen Beispielen eine TCP Konversation zwischen dem Client und dem Server) stattfindet.

Ein Reverse-Proxy akzeptiert die Anforderung im Namen des Webservers, gibt diese Anforderung an den Webserver weiter und gibt sie an den Client zurück. Optional werden die Ergebnisse zwischengespeichert, falls eine ähnliche Anforderung folgt.

Beachten Sie, dass der Client niemals eine Verbindung zum Webserver herstellt. Vielmehr findet das Gespräch ausschließlich zwischen dem Proxy und dem Client statt.

14
Brian Tillman

Ein Load Balancer kann den Datenverkehr von Schicht 3 aufwärts auf Schicht 7 ausgleichen, ein Reverse-Proxy ist jedoch HTTP-spezifisch.

6
Kris Roofe

A Reverse Proxy akzeptiert eine Anfrage von einem Client leitet sie an einen Server weiter, der sie erfüllen kann und gibt die Antwort des Servers an den Client zurück (dh einen Server hinter dem Reverse) Der Proxy kann mit etwas anderen Merkmalen eines Protokolls oder eines anderen Protokolls kommunizieren.

A Load Balancer verteilt eingehende Client-Anforderungen auf eine Gruppe von Servern und gibt jeweils die Antwort vom ausgewählten Server an den entsprechenden Client zurück.

3
Manu Prasadh