web-dev-qa-db-fra.com

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

Je ne suis pas clair sur la différence entre Load Balancer et Reverse Proxy. Ils semblent tous deux avoir le même comportement: distribuer les demandes entrantes aux serveurs principaux.

124
Morgan Cheng

Votre confusion est raisonnable - c'est souvent la même chose. Mais pas toujours. Lorsque vous faites référence à un équilibreur de charge, vous faites référence à une chose très spécifique - un serveur ou un appareil qui équilibre les demandes entrantes sur deux serveurs Web ou plus pour répartir la charge. Un proxy inverse, cependant, possède 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 des serveurs Web derrière lui et ainsi réduire la charge sur le ou les serveurs Web et renvoyer du contenu statique au demandeur sans avoir à obtenir les données du ou des serveurs Web

  3. sécurité: il peut protéger le (s) serveur (s) Web en empêchant l'accès direct à Internet; il peut le faire par des moyens simples en masquant simplement le ou les serveurs Web ou il peut avoir des composants plus actifs qui examinent réellement 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 la majeure partie, mais il y a probablement quelques autres fonctionnalités que j'ai manquées. Il n'est certainement pas rare de voir un appareil ou un logiciel commercialisé comme équilibreur de charge/proxy inverse, car les fonctionnalités sont si souvent regroupées.

121
icky3000

De plus, un proxy inverse est spécifique aux serveurs Web.

Les équilibreurs de charge peuvent cependant gérer de nombreux autres protocoles. Bien que le Web (HTTP) soit la grande idée de nos jours, des choses comme le DNS, le courrier (SMTP, IMAP), etc. peuvent également être équilibrées en charge. C'est juste de nos jours que la plupart des gens pensent à "Internet" ou "réseau IP", ils pensent au Web. Il y a beaucoup plus de choses qui peuvent être plus obscures ou plus niches.

26
DM

Alors que le résultat net (répartition des demandes entre les serveurs) est le même entre divers équilibreurs de charge et procurations inverses, la différence réside dans la méthode utilisée pour distribuer les demandes.

Certains équilibreurs de charge équilibrent le trafic à l'aide de DNS, résolvant le même nom à différentes adresses IP dans un tournoi à la ronde 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 honorer le TTL que vous avez fourni. Cisco's GSS (Global Site Selector) ) 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 paquets destinés à une adresse IP virtuelle sur l'adresse IP réelle d'un serveur dans une batterie de serveurs. Cela permet un équilibrage de charge en temps réel et un basculement quasi instantané. Un exemple de ceci serait le CSM de Cisco (module de commutation de contenu)

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

Un proxy inverse fonctionne en acceptant la demande au nom du serveur Web, puis en faisant écho à cette demande au serveur Web et en la renvoyant au client, en mettant éventuellement en cache les résultats si une demande similaire devait suivre.

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.

14
Brian Tillman

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

6
Kris Roofe

A proxy inverse accepte une demande d'un client, la transmet à un serveur qui peut la satisfaire, et renvoie la réponse du serveur au client (ce qui signifie un serveur derrière le Reverse Le proxy peut communiquer avec des fonctionnalités quelque peu différentes d'un protocole ou d'un protocole différent).

A équilibreur de charge distribue les demandes clientes entrantes parmi un groupe de serveurs, renvoyant dans chaque cas la réponse du serveur sélectionné au client approprié.

3
Manu Prasadh