Logiciel d'équilibrage de charge http?

19

À l'heure actuelle, nous n'avons qu'un seul serveur principal par site / service Web. Je serais intéressé d'entendre les expériences des gens avec diverses applications d'équilibrage de charge (quelque chose qui fonctionne sous Linux).

Que recommanderais-tu?

Mark Renouf
la source

Réponses:

13

Selon l' épisode 27 du podcast StackOverflow , les gars de Reddit semblent vraiment aimer HAProxy . Voici un bref tutoriel montrant HAProxy utilisé avec EC2 d'Amazon . Vous pouvez trouver beaucoup plus d'informations sur le site Web HAProxy .

John Siracusa
la source
3
J'utilise HAProxy sur un certain nombre de serveurs de production et j'adore ça. Il est facile à configurer et possède même une interface Web simple pour vérifier son état et ses statistiques en temps réel. Un screencast qui m'a aidé à configurer ma première instance de HAProxz peut être trouvé sur le [blog Signal versus bruit] [1] [1]: 37signals.com/svn/posts/1073-nuts-bolts-haproxy
Wes Oldenbeuving
J'ai oublié l'aspect gérabilité. Cela semble très bien.
Mark Renouf
21

La question ne fournit pas d'informations spécifiques sur la charge, les fonctionnalités nécessaires, etc., de sorte que toute réponse est au mieux une supposition.

La livre est un bon choix pour les sites plus petits / de taille moyenne. Il offre un support HTTPS et une configuration facile.

HAproxy peut évoluer pour saturer les canaux Ethernet 10G et offre une limitation de connexion, c'est-à-dire l'envoi uniquement du nombre de demandes simultanées à chaque serveur principal car vous avez des instances enfants Apache / Ruby on Rails à gérer.

nginx est idéal comme équilibreur de charge complet et serveur de fichiers statique. Il peut effectuer la compression HTTP, la réécriture d'URL et le service de fichiers statiques tout en effectuant l'équilibrage de charge.

Apache est également dans la série 2.2 un assez bon équilibreur de charge. Peut faire la même chose que nginx, mais place une charge plus élevée sur le serveur que nginx. Cela vaut la peine d'être étudié si vous êtes déjà familier avec Apache et très mature.

Perlbal propose une limitation de connexion facile aux hôtes principaux, des demandes de multiplexage sur des connexions HTTP persistantes et une configuration facile si vous utilisez déjà Perl.

Le cache Varnish est un proxy HTTP inverse, avec une prise en charge de base de l'équilibrage de charge. Ce n'est pas un excellent équilibreur de charge, mais dans certaines situations, sa mise en cache en mémoire de la plupart des objets demandés peut supprimer un pourcentage élevé des hits du serveur principal, et ses performances sont excellentes. Les inclusions ESI sont potentiellement intéressantes.

Je ne suis pas sûr à 100%, mais du haut de ma tête, Perlbal et nginx offrent un certain soutien pour changer la configuration sans redémarrer l'équilibreur de charge. Pour les grands sites, cela est essentiel, et c'est l'une des choses que les bonnes appliances d'équilibrage de charge commerciales font bien.

Tous les éléments ci-dessus sont des équilibreurs de charge de niveau HTTP (couche 7). Les équilibreurs de charge de niveau TCP / IP peuvent atteindre un débit plus élevé, mais sont limités à d'autres égards. L'auteur de HAProxy a rédigé un bon aperçu lisible des méthodes et des problèmes d'équilibrage de charge: http://1wt.eu/articles/2006_lb/

LVS est un équilibreur de charge de niveau TCP / IP largement utilisé. La plupart des pare-feu peuvent également effectuer un équilibrage de charge de base au niveau IP, en hachant la demande entrante sur une plage d'adresses IP principales - au moins PF d'OpenBSD et Cisco ASA et Juniper Netscreens peuvent le faire.

Jesper M
la source
3

haproxy fonctionne bien comme LVS.

FWIW, wordpress.com utilise nginx comme équilibreur / proxy.

Jauder Ho
la source
2

Nous utilisons LVS dans la production. Il est géré par notre équipe d'exploitation avec un ensemble de scripts complexes et diaboliques. Un système sur mesure plutôt intelligent annonce les données de santé et de performances de nos serveurs réels pour permettre à l'équilibreur de charge de définir les pondérations en conséquence.

LVS vous offre bien sûr un point de défaillance unique - l'équilibreur de charge (il existe des moyens de les configurer de manière redondante).

Je pensais que c'était trop compliqué à configurer, j'ai donc écrit Fluffy Linux Cluster qui était basé sur le fonctionnement de Windows NLB (je pense ... je ne sais pas comment cela fonctionne) et également inspiré de CLUSTERIP.

Nous ne l'utilisons pas en production mais Fluffy peut équilibrer la charge d'un nombre raisonnable (5 au moins) de serveurs sans point de défaillance unique et sans nœud de gestion central, etc.

MarkR
la source
Hmm: LVS, scripts maléfiques, systèmes sur mesure plutôt intelligents. Votre configuration est exactement comme la nôtre!
Tom Anderson
2

J'ai utilisé Pound dans le passé. C'est rapide, simple et nécessite une attention minimale.

mryan1
la source
1

Je suis un grand fan des LB multicouches ZX de Zeus - cliquez ICI

Chopper3
la source
1

Si vous décidez d'utiliser LVS, j'examinerais également Keepalived si vous souhaitez rendre votre couche de serveur d'équilibrage de charge hautement disponible. J'utilisais Heartbeat / Pacemaker avec LVS depuis plusieurs mois et je l'ai trouvé trop compliqué et parfois instable pour une simple couche HA LB.

Aaron Bush
la source