web-dev-qa-db-ja.com

リバースプロキシモードでのHAProxyとNginxの違いは何ですか?

リバースプロキシとしての機能に関して、HAProxyとNginxの違いは何ですか?

24
Quintin Par

2019更新:

それらは安定で成熟した製品です。 HAProxyはロードバランシング専用であり、その点で優れていますが、nginxはロードバランサーとして機能できるウェブサーバーです。

両方:

  • HTTPSサポート
  • WebSocketサポート
  • 安定した成熟した非常に効率的な製品
  • 最小限の調整または調整なしで10k接続を処理できます

HAProxy:

  • TCP、TCP-SSL、HTTPおよびHTTPS負荷分散
  • ヘルスチェックとフェイルオーバー条件の柔軟性が向上
  • 基本的なキャッシュ(v1.8-2017)
  • カスタマイズ可能なログ形式、アクセスログをkibana/splunk/graylogにインポートする
  • 詳細なステータスページ。アクティブなリクエストとサーバーのステータスを確認します
  • モニタリングソリューションと統合するためのエクスポート可能なメトリック(グラファイト/プロメテウス/データドッグ)
  • より高性能志向。 100k接続または40 GbEインターフェースを処理することをお勧めします。

Nginx:

  • HTTPおよびHTTPS負荷分散(TCP-有料版のUDP)
  • キャッシングの柔軟性が向上
  • カスタマイズ可能なログ形式、アクセスログをkibana/splunk/graylogにインポートする
  • ステータスページなし(有料版のみ)
  • エクスポート可能な指標なし(有料版のみ)
  • ローカルファイルを提供できます
  • FastCGIアプリケーションを提供できます(CGIではありません)

HAProxyはフリーソフトウェアであり、完全にオープンソースです。彼らは、HAProxyがプリインストールされたハードウェアアプライアンスを販売することで収益を得ています。

Nginxはオープンコアであり、多くの機能は有料版でのみ利用できます。特に、それは欠けています ステータスページとモニタリングメトリック これは、ロードバランサーを操作するための大きな違いです。

6
user5994461

HAProxyは、実際には単なるロードバランサー/リバースプロキシです。 Nginxは、リバースプロキシとしても機能するWebサーバーです。

ここにいくつかの違いがあります:

HAProxy:

  • TCPおよびHTTPプロキシ(1.5-dev12から追加されたSSL)
  • より多くのレート制限オプション
  • 著者はここでサーバー障害に関する質問に答えます;-)

Nginx

  • SSLを直接サポート
  • キャッシングサーバーでもある

Stack Overflowでは主にHAProxyをnginxとともにSSLオフロードに使用するため、HAProxyが私の推奨です。

44
Kyle Brandt

私はnginxをHAProxyのフロントエンドに使用していますが、SSLターミネーション専用です。

HAProxyは、(私の経験では)より調整可能で管理しやすいロードバランサーです。

静的オブジェクトキャッシング用のVarnishも組み込んでいます。 (HAProxyの特定のバックエンドとして)

詳細については、このサーバー障害の質問を参照してください。 nginx/varnish/haproxyの注文

11
Joel K

HAプロキシのロードバランシングにのみ必要な場合は、より優れています。ただし、nginixは静的コンテンツの提供が高速であるため、nginixとHAプロキシの両方を組み合わせる方が便利です。静的データのすべての要求を処理し、ロードバランサーとして機能するすべての要求をHAプロキシに送信し、Webサーバーに要求を送信して処理します。負荷を分散してリクエストします。

5
Mitesh