GNU/Linux >> Linux の 問題 >  >> Linux

HAProxyロードバランサーを設定する方法

概要

HAProxyロードバランサーを構成する手順について説明します。 HAProxyは、ラウンドロビン命令とフェイルオーバーモードで実行できますが、両方を同時に実行して、HA(高可用性)を保証することもできます。ラウンドロビンモードでのみHAProxyを実行する以外に、一部のHAシナリオでは、より信頼性の高いHA環境とより簡単なメンテナンスのためにWebサイトまたはアプリにサービスを提供するメインサーバー用のバックアップサーバーを用意する必要があります。

>

それ以外に、HAProxyは、この投稿でカバーされているインフラストラクチャ上のすべての着信トラフィックを暗号化するために使用されるsslパススルーとして実行することもできます(certbotを使用してsslを暗号化しましょう)。この投稿では、手順とHAProxy構成について説明します。 HAProxyをサーバー(ベアメタルまたはVM)に直接インストールするシナリオの場合、つまり、コンテナーではなく。

HAProxyにSSLを追加する方法にも興味がある場合は、この投稿で説明されています。 SSL / HTTPS暗号化を使用してhaproxyロードバランサーを構成し、安全なロードバランシングトラフィックを確保することもできます。

ラウンドロビンモード

ラウンドロビンアルゴリズムは、トラフィックを均等に分割するための一連の命令です(この例では)。つまり、2つのサーバーがある場合、両方のサーバーがトラフィックを均等に受信します。つまり、ラウンドロビンは両方のサーバーが確実にトラフィックを受信するようにします。等量のトラフィックとその方法により、サーバーや帯域幅が過負荷にならないようにします。

フェイルオーバーモード

前述のように、フェイルオーバーモードでは、トラフィックを受信するプライマリサーバーと、プライマリサーバーがダウンした場合に受信トラフィックを引き継ぐバックアップサーバーをHAProxyに割り当てます。つまり、プライマリサーバーがダウンすると、バックアップサーバーが引き継ぎ、プライマリサーバーがオンラインに戻るまで置き換えられるため、ダウンタイムが最小限に抑えられます。

これは、サーバーのメンテナンスを行う必要がある場合にも役立ちます。そのため、一方のサーバーで更新とアップグレードを実行するか、サーバーを再起動する必要がある場合、もう一方のサーバーが稼働し、プライマリサーバーとしての役割を引き継ぎ、サイト/アプリを提供します。

HAProxyロードバランサーの構成

フェイルオーバー構成

以下の構成のIPアドレスを例として使用します。構成は非常に簡単です。 HAProxy cfgファイルで、次のような構成をデフォルト構成のすぐ下に追加します。

frontend haproxy
bind 10.0.51.119:80
mode http
default_backend test_site

backend test_site
mode http
server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2
server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2

構成のフロントエンド部分はHAProxyです。 HAProxyをそのIPアドレスとポート番号(サービスポート)でバインドします。この例では、HTTPにポート80を使用しています。 HAProxyがインターネット上で公開されている場合は、HAProxyのパブリックIPアドレスを使用してください。

haproxyフロントエンドに対して、サーバーを構成および追加するバックエンドがあることを定義します。

この例では、haproxyバックエンド用に2つのサーバーを追加しました。 Testserver 1はプライマリサーバーであり、testserver2はバックアップサーバーです。サーバーに追加されたパラメータも明確にします:

server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 

server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2

両方のサーバーで、サーバーのオンラインチェック間隔を追加しました。 testserver1の場合、3回のチェック(5秒間隔で3回のチェック)を行って5秒後に応答しなくなると、オフラインとしてフラグが立てられ、バックアップサーバーが引き継ぎます。 testserver1がオンラインに戻ると、2回のチェック後に引き継ぎます。

同じチェックパラメータがバックアップサーバーに追加されます。

ラウンドロビン構成

HAProxyにはすでにラウンドロビン命令が統合されているため、構成の裏側に構成行を追加するだけで済みます–バランスラウンドロビン。

以下の構成のように:

frontend haproxy 
bind 10.0.51.119:80 
mode http 
default_backend test_site 

backend test_site 
balance roundrobin
mode http server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 
server testserver2 10.0.51.120:80 check backup inter 5s rise 3 fall 2

フェイルオーバー+ラウンドロビン

HAProxyはラウンドロビンアルゴリズムで構成でき、フェイルオーバーサーバーも使用できることを説明しました。この設定では、より多くのサーバー、着信トラフィックの負荷分散を行うプライマリサーバー、およびプライマリサーバーがダウンした場合に引き継ぐ別のフェイルオーバー(バックアップ)サーバーを用意することをお勧めします。この種のセットアップの構成は、次のようになります。

backend test_site 
balance roundrobin 
mode http 
server testserver1 10.0.51.121:80 check inter 5s rise 3 fall 2 
server testserver2 10.0.51.120:80 check inter 5s rise 3 fall 2
server testserver3 10.0.51.121:80 check backup inter 5s rise 3 fall 2

そのため、この構成では、バックアップサーバーとして機能するようにHAProxyで割り当てた3番目のサーバーを追加し、最初の2つはプライマリサーバーとして機能し、HAProxyはそれらのサーバーのトラフィックを負荷分散します。

概要

これらは、HAProxyロードバランサーを構成する方法の例です。これは、最も一般的に構成されている方法のほんの一例です。 HAProxyにSSLを追加する方法にも興味がある場合は、この投稿で説明されています。投稿がお役に立てば幸いです。


Linux
  1. ApacheWebサーバーを構成する方法

  2. Debian11にHAProxyロードバランサをインストールして設定する方法

  3. Rocky Linux / AlmaLinux8にHAProxyロードバランサーをインストールして構成する方法

  1. s0.d1.smallBMCサーバーでロードバランサーを設定する方法

  2. Debian 9 /Ubuntu16.04サーバーでHAProxyを設定する方法

  3. Ubuntu20.04にHAProxyロードバランサーをインストールして構成する方法

  1. LinuxでNGINXをTCP/UDPロードバランサーとして構成する方法

  2. AWSアプリケーションロードバランサーでホストベースのルーティングを設定する方法

  3. AWSでネットワークロードバランサーを作成する方法