現在、サイト/ Webサービスごとに1つのバックエンドサーバーしかありません。さまざまなロードバランサーアプリ(Linuxで実行されるもの)に関する人々の経験を聞いてみたいと思います。
あなたは何をお勧めします?
StackOverflowポッドキャスト の episode 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を既に使用している場合の簡単なセットアップを提供します。
Varnish cache は、基本的な負荷分散をサポートするリバース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、およびJuniperNetscreensでこれを行うことができます。
haproxyはLVSと同様に機能します。
FWIW、wordpress.comはバランサー/プロキシとしてnginxを使用しています。
私は過去に ポンド を使用しました。高速でシンプルで、最小限の注意が必要です。
本番環境ではLVSを使用しています。それは、複雑で邪悪なスクリプトのセットを使用して、運用チームによって管理されています。かなり巧妙な特注システムが、実サーバーからのヘルスとパフォーマンスのデータをアナウンスして、ロードバランサーがそれに応じて重みを設定できるようにします。
もちろん、LVSは単一障害点であるロードバランサーを提供します(それらを冗長に設定する方法があります)。
これはセットアップするには複雑すぎると思ったので、私は Fluffy Linux Cluster を作成しました。これは、Windows NLBの動作に大まかに基づいており(私は...それがどのように動作するかはわかりませんが)、インスピレーションも与えましたCLUSTERIPによる。
本番環境では使用しませんが、Fluffyは、単一障害点や中央管理ノードなどを使用せずに、妥当な数(少なくとも5台)のサーバーの負荷を分散できます。
LVSを使用することにした場合、負荷分散サーバーレイヤーの可用性を高める場合は、Keepalivedも調べます。私は数ヶ月間LVSでHeartbeat/Pacemakerを使用していましたが、単純なHA LB層には複雑すぎて、不安定な場合がありました。
私はZeusのZXTMマルチレイヤーLBの大ファンです-クリック [〜#〜]ここ[〜#〜]