HAProxy を使用した httpd の HA と負荷分散

HAProxy を使用した httpd の HA と負荷分散

私は、http トラフィックが httpd サーバーによってリバース プロキシされるインフラストラクチャに取り組んでいます。このプラットフォームには多数の仮想ホストが設定されているため、(たとえば Nginx を検討するのではなく) httpd を使い続けたいと考えています。

ここで、リバース プロキシ部分に HA 機能と負荷分散機能を追加したいと思います。アクティブ/アクティブ クラスターを作成する場合は、DNS ラウンドロビンのようなソリューションが必要ですが、これを最初のオプションとして検討することは望ましくありません (取得が複雑なため)。

HAProxy アクティブ/パッシブ クラスター (フローティング IP を使用)、ロード バランシング (TCP モード、レベル 4)、httpd アクティブ/アクティブ クラスターを構成して、実際の http(s) リバース プロキシを実行するのは良い解決策でしょうか。この方法では、次のことが実現されます。

  1. HAProxyはフォールトトレラントなので、httpdの
  2. 負荷分散。httpd は負荷分散されています (アクティブ-アクティブ)。HAProxy はそうではありません (1 つのホストがアクティブ)。ただし、トラフィックの処理に関しては httpd よりもスケーラブルであり、1 つのノードで十分であると想定しています。
  3. tcp で HAProxy ロード バランシングを使用すると、http と https のすべての構成を httpd 側に残すことができます。

このアプローチには欠点がありますか、あるいはより良い解決策はありますか?

答え1

サイ、

賢明な解決策を思いついたようですね。アプリケーション クラスターの一般的な HA ロード バランサーの展開について説明しています。HAProxy は、必要に応じて柔軟に対応します。また、TCP パススルー モードはシンプルで便利です。

唯一の問題は、HAProxy クラスターを確実に維持するための複雑さが増すことです。Keepalived を使用すると思いますか?

Loadbalancer.org では現在 Heartbeat (HA-Linux) を使用していますが、複数のロード バランサーにわたるアクティブ/アクティブをサポートする独自の Pulse HA システムに近々移行する予定です。

関連情報