Quelle est la différence entre Load Balancer et Reverse Proxy?

Réponses:

114

Votre confusion est raisonnable - ils sont souvent la même chose. Mais pas toujours. Lorsque vous faites référence à un équilibreur de charge, vous faites référence à un élément très spécifique: un serveur ou un périphérique qui équilibre les demandes entrantes sur deux serveurs Web ou plus afin de répartir la charge. Un proxy inverse, cependant, a généralement un certain nombre de fonctionnalités:

  1. équilibrage de charge: comme discuté ci-dessus

  2. mise en cache: il peut mettre en cache le contenu du ou des serveurs Web qui se trouvent derrière, réduisant ainsi la charge sur le ou les serveurs Web et renvoyant du contenu statique au demandeur sans avoir à récupérer les données du ou des serveurs Web.

  3. sécurité: il peut protéger le (s) serveur (s) Web en empêchant un accès direct depuis Internet; Pour ce faire, il peut utiliser des moyens simples en masquant simplement le ou les serveurs Web, ou peut comporter des composants plus actifs qui analysent les demandes entrantes à la recherche de code malveillant.

  4. Accélération SSL: lorsque SSL est utilisé; il peut servir de point de terminaison pour ces sessions SSL afin que la charge de travail liée au chiffrement soit déchargée du ou des serveurs Web.

Je pense que cela couvre l'essentiel, mais il y a probablement quelques autres fonctionnalités que j'ai ratées. Certes, il n'est pas rare de voir un périphérique ou un logiciel commercialisé comme équilibreur de charge / proxy inverse, car les fonctionnalités sont si souvent regroupées.

icky3000
la source
2
+ mise en commun des connexions (autoriser plusieurs demandes sur une connexion frontale lorsque le système principal ne la gère pas correctement; ou réutiliser une connexion
dorsale
+ compression Le fait de compresser les réponses du serveur avant de les renvoyer au client (avec gzip, par exemple) réduit la bande passante nécessaire, ce qui accélère leur transit sur le réseau
dimuthu
25

En outre, un proxy inverse est spécifique aux serveurs Web.

Les équilibreurs de charge peuvent cependant traiter beaucoup d'autres protocoles. Bien que le Web (HTTP) soit la grande idée de nos jours, des éléments tels que le DNS, la messagerie (SMTP, IMAP), etc. peuvent également être équilibrés. C'est à l'heure actuelle que la plupart des gens pensent «Internet» ou «réseau IP», ils pensent au Web. Il y a beaucoup d'autres choses qui peuvent être plus obscures, ou plus d'une niche.


la source
12

Bien que le résultat net (distribution des requêtes entre les serveurs) soit le même entre les différents équilibreurs de charge et les serveurs mandataires inversés, la différence réside dans la méthode utilisée pour distribuer les requêtes.

Certains équilibreurs de charge équilibrent le trafic à l'aide de DNS, résolvant le même nom en différentes adresses IP lors d'une répétition alternée redirigeant efficacement les demandes. Cela peut souvent être utile lors de demandes d'équilibrage de charge entre des centres de données ou d'autres emplacements physiques. C'est un mauvais choix si vous avez besoin d'un basculement «instantané», car vous êtes à la merci du serveur DNS de vos clients pour respecter le TTL que vous avez fourni. GSS (Global Site Selector) de Cisco est un bon exemple d'équilibrage de charge basé sur DNS.

D'autres équilibreurs de charge fonctionnent en réécrivant les en-têtes de paquet destinés à une adresse IP virtuelle sur l'adresse IP réelle d'un serveur d'une batterie. Cela fournit un équilibrage de la charge en temps réel et un basculement quasi instantané. Un exemple de ceci serait le CSM (module de commutation de contenu) de Cisco

Notez que dans les deux exemples ci-dessus, il existe une conversation TCP entre le client et le serveur.

Un proxy inverse fonctionne en acceptant la demande pour le compte du serveur Web, puis en renvoyant cette demande au serveur Web et en la renvoyant au client, mettant éventuellement en cache les résultats si une demande similaire suivait.

Notez que le client n'établit jamais réellement de connexion au serveur Web. la conversation est plutôt strictement entre le proxy et le client.

Brian Tillman
la source
4

Un équilibreur de charge peut équilibrer le trafic de la couche 3 à la couche 7, mais un proxy inverse est spécifique à HTTP.

Kris Roofe
la source
3

Un proxy inverse accepte une demande d'un client, la transfère à un serveur qui peut y répondre et renvoie la réponse du serveur au client (ce qui signifie qu'un serveur situé derrière le proxy inverse peut communiquer avec des caractéristiques quelque peu différentes d'un protocole ou d'un protocole différent. )

Un équilibreur de charge répartit les demandes client entrantes sur un groupe de serveurs, renvoyant la réponse du serveur sélectionné au client approprié.

Manu Prasadh
la source
1
Vous voulez donc dire qu'un équilibreur de charge est essentiel pour un «proxy inverse» avec une distribution?
Anthony Kong
4
Il s’agit d’une duplication directe de nginx.com/resources/glossary/reverse-proxy-vs-load-balancer, soit ils ont volé votre réponse, soit vous devriez référencer vos sources
icc97