web-dev-qa-db-ja.com

ソフトウェアhttpロードバランサー?

現在、サイト/ Webサービスごとに1つのバックエンドサーバーしかありません。さまざまなロードバランサーアプリ(Linuxで実行されるもの)に関する人々の経験を聞いてみたいと思います。

あなたは何をお勧めします?

19
Mark Renouf

StackOverflowポッドキャストepisode 27 によると、Redditの人たちは本当に HAProxy が好きなようです。これは、 AmazonのEC2で使用されているHAProxy を示す簡単なチュートリアルです。 HAProxy Webサイト でさらに多くの情報を見つけることができます。

13
John Siracusa

質問は、負荷、必要な機能などに関する特定の情報を提供しないため、そのような答えはせいぜい推測です。

ポンド は、小規模/中規模のサイトに適しています。 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でこれを行うことができます。

21
Jesper M
3
Daniel Silveira

haproxyはLVSと同様に機能します。

FWIW、wordpress.comはバランサー/プロキシとしてnginxを使用しています。

3
Jauder Ho

私は過去に ポンド を使用しました。高速でシンプルで、最小限の注意が必要です。

2
mryan1

本番環境ではLVSを使用しています。それは、複雑で邪悪なスクリプトのセットを使用して、運用チームによって管理されています。かなり巧妙な特注システムが、実サーバーからのヘルスとパフォーマンスのデータをアナウンスして、ロードバランサーがそれに応じて重みを設定できるようにします。

もちろん、LVSは単一障害点であるロードバランサーを提供します(それらを冗長に設定する方法があります)。

これはセットアップするには複雑すぎると思ったので、私は Fluffy Linux Cluster を作成しました。これは、Windows NLBの動作に大まかに基づいており(私は...それがどのように動作するかはわかりませんが)、インスピレーションも与えましたCLUSTERIPによる。

本番環境では使用しませんが、Fluffyは、単一障害点や中央管理ノードなどを使用せずに、妥当な数(少なくとも5台)のサーバーの負荷を分散できます。

2
MarkR

LVSを使用することにした場合、負荷分散サーバーレイヤーの可用性を高める場合は、Keepalivedも調べます。私は数ヶ月間LVSでHeartbeat/Pacemakerを使用していましたが、単純なHA LB層には複雑すぎて、不安定な場合がありました。

1
Aaron Bush

私はZeusのZXTMマルチレイヤーLBの大ファンです-クリック [〜#〜]ここ[〜#〜]

1
Chopper3