web-dev-qa-db-ja.com

Varnishがロードバランサーとして機能できる場合でも、HAProxyは必要ですか?

アプリケーションサーバーの負荷を分散し、それらからの応答をキャッシュしたいと思います。

私はHAProxyのウェブサイトで2012年にさかのぼる記事を読みました。

http://blog.haproxy.com/2012/07/04/haproxy-and-varnish-comparison/

この記事では基本的に、HAProxyはリバースプロキシロードバランサーのみ(キャッシュなし)であり、Varnishはリバースプロキシキャッシュ(ロードバランシングなし)であるため、補完的であると述べています。

しかし、今日、Varnishのドキュメントで、負荷分散も行うことがわかります。

https://www.varnish-cache.org/trac/wiki/LoadBalancing

したがって、この機能は2012年から導入されており、負荷分散の点でHAProxyと直接競合していると推測できます。

リバースプロキシキャッシュとロードバランサーが必要であることを考えると、Varnishのみで単一のサーバーを使用できるというのは本当ですか?それは両方を実行しますか?典型的なHAProxy <->ワニスのセットアップと比較して、何か制限があるかもしれませんか?

4
Benjamin

ワニスはサポートしていません [〜#〜] ssl [〜#〜]

SSLでサイト/サービスを実行することは、半分深刻なことには必要です。そのため、SSLターミネーションを行うhaproxyを使用する理由の1つです。

4
Not Now

HAProxyとVarnishの両方can負荷分散ですが、そのうちの1つだけがそのために構築されています。

Apacheはプロキシとキャッシュもできるので、目的に使用することもできますが、最適なソリューションとは言えません。

私の意見では、あなたはそれが最も得意とするもののために各製品を使うのが最善です。

私がしていることは、両方を同じボックスにインストールし、HAProxyを唯一のバックエンドとして使用するようにVarnishを構成することです。

CDNはHAPROXYをポイントします。HAPROXYはVarnishとバックエンドの間で負荷分散し、ヘッダーまたはソースIPに基づいてVarnishからのリクエストでない限り、デフォルトでVarnishに送信します。

このようにして、次のことができます。

  • アップグレードやテストのためにワニスを簡単にバイパス
  • 負荷が増加するにつれて、いずれかの層をより多くのボックスにスケールアウトします
  • 各ソフトウェアをその主要な目的に使用する
2
GregL

基本的な負荷分散を実装するほとんどのソフトウェアと同様に、Varnishは実際にはラウンドロビンおよびランダム分散アルゴリズムのみをサポートします。

一方、HAProxyは負荷分散用に構築されているため、 supports

  • ラウンドロビン(重み付けあり)
  • 静的ラウンドロビンアプローチ
  • 最小の接続
  • 利用可能な最初のサーバー
  • ソースに基づくバケット化
  • uRIに基づくバケット化
  • uRLパラメータに基づくバケット
  • hTTPヘッダーに基づくバケット化
  • クッキーに基づくバケット化

Varnishの負荷分散が十分かどうかは、ニーズによって異なりますが、HAProxyに取って代わるものではありません。