回答:
StackOverflowポッドキャストのエピソード27によると、Redditの連中は本当にHAProxyが好きなようです。これは、AmazonのEC2で使用されるHAProxyを示す簡単なチュートリアルです。詳細については、HAProxy Webサイトを参照してください。
質問は、負荷、必要な機能などに関する特定の情報を提供しないため、回答はせいぜい推測にすぎません。
ポンドは、小規模/中規模のサイトに適しています。HTTPSサポートと簡単なセットアップを提供します。
HAproxyは、10Gイーサネットパイプを飽和させるように拡張でき、接続制限を提供します。つまり、処理するApache子/ Ruby on Railsインスタンスがあるため、各バックエンドサーバーに同時リクエストの数だけを送信します。
nginxは、オールラウンドロードバランサーおよび静的ファイルサーバーとして最適です。ロードバランシングを行いながら、HTTP圧縮、URL書き換え、静的ファイルサービスを実行できます。
Apacheは2.2シリーズでも非常に優れたロードバランサーです。nginxとほぼ同じことができますが、nginxよりもサーバーに高い負荷がかかります。すでにApacheに精通していて、非常に成熟している場合は、検討する価値があります。
Perlbalは、バックエンドホストへの簡単な接続制限、永続的なHTTP接続での要求の多重化、および既にPerlを使用している場合の簡単なセットアップを提供します。
ワニスキャッシュは、基本的な負荷分散をサポートするリバースHTTPプロキシです。優れたロードバランサーではありませんが、状況によっては、ほとんどの要求されたオブジェクトのメモリ内キャッシュにより、バックエンドサーバーのヒットの高い割合を削除でき、優れたパフォーマンスを発揮します。ESIインクルードは潜在的に興味深いです。
100%確信はありませんが、頭の中でPerlbalとnginxは、ロードバランサーを再起動せずに構成を変更するためのサポートを提供しています。大規模なサイトの場合、これは重要であり、優れた商用ロードバランサーアプライアンスがうまくいくことの1つです。
上記はすべてHTTPレベル(レイヤー7)のロードバランサーです。TCP / IPレベルのロードバランサーは、より高いスループットに達する可能性がありますが、他の方法では制限されます。HAProxyの作成者は、ロードバランシングの方法と問題の読みやすい概要をhttp://1wt.eu/articles/2006_lb/に書いてい ます。
LVSは、広く使用されているTCP / IPレベルのロードバランサーです。また、ほとんどのファイアウォールは、一定範囲のバックエンドIPアドレスで着信要求をハッシュすることにより、IPレベルで基本的な負荷分散を行うことができます-少なくともOpenBSDのPFとCisco ASAおよびJuniper Netscreensはこれを行うことができます。
本番環境ではLVSを使用します。複雑で邪悪なスクリプトのセットを使用して、運用チームが管理しています。かなり賢いオーダーメイドのシステムが、実サーバーからのヘルスおよびパフォーマンスデータをアナウンスし、ロードバランサーがそれに応じてウェイトを設定できるようにします。
もちろん、LVSは単一障害点-ロードバランサーを提供します(それらを冗長にセットアップする方法があります)。
これは設定するには複雑すぎると思ったので、Windows NLBの動作に大まかに基づいたFluffy Linux Clusterを作成しました(それがどのように動作するのかはわかりません)。
本番環境では使用しませんが、Fluffyは単一障害点や中央管理ノードなどを使用せずに、合理的な(少なくとも5つの)サーバーの負荷を分散できます。