Réponses:
(Je n'entre pas dans la "meilleure façon d'équilibrer la charge", car cela est évidemment spécifique à la situation.)
HAProxy et nginx sont d'excellents choix pour les équilibreurs de charge HTTP open source sous Unix. À un niveau très élevé, les avantages et les inconvénients qui viennent à l'esprit sont à mon humble avis:
nginx:
HAProxy:
Mais comme dit, les deux sont d'excellents choix. Choisissez celui avec lequel vous vous sentez le plus à l'aise.
Cela dépend vraiment de ce que vous voulez faire.
Nginx peut répartir la charge entre les clusters, ainsi que router des domaines spécifiques vers différents clusters. Notre performance nginx a été satisfaisante. Cela ressemble plus à un routeur de charge.
Pour haproxy, je sais qu'il interroge constamment l'état du serveur et vérifiera le serveur avant de diriger le trafic vers lui. Il dispose également d'une interface où vous pouvez afficher des statistiques. nginx Je ne pense pas que cela se fasse sur les deux points.
Nous utilisons nginx comme serveur Web et nous en sommes très satisfaits. Je ne retourne jamais à Apache. L'inconvénient est que vous avez l'intention d'exécuter PHP; il nécessite un peu de piratage pour le faire fonctionner sous fastCGI.
N'oubliez pas de mettre Varnish en place pour la mise en cache! Cette simple étape résout un grand nombre des problèmes des sites Slashdotted / Fireballed!
Je ne suis pas un expert dans ce domaine, mais pour autant que je sache, HAProxy a de meilleures performances et est plus configurable dans la façon dont il effectue l'équilibrage de charge.
Maintenant, je pourrais vous lancer une liste de comparaisons et de repères, mais je vais simplement lier les résultats Google à la place https://encrypted.google.com/search?q=nginx+vs+haproxy