ウェブサイト検索

RHEL/CentOS で「POUND」を使用した Web サーバーの負荷分散のセットアップ


POUND は、ITSECURITY Company によって開発された負荷分散プログラムです。これは、複数のサーバー間で負荷を分散するための Web サーバー ロード バランサーとして使用できる、軽量のオープン ソース リバース プロキシ ツールです。 POUND がエンドユーザーに与えるいくつかの利点は非常に便利で、適切に機能します。

  1. 仮想ホストをサポートします。
  2. 設定可能。
  3. バックエンド サーバーに障害が発生した場合、または障害から回復した場合、バックエンド サーバーはそれを自動的に検出し、それに基づいて負荷分散の決定を行います。
  4. 間違ったリクエストは拒否されます。
  5. 指定されたブラウザーや Web サーバーはありません。

このハッキングをどのように実行できるかを見てみましょう。

まず最初に、これを行うことについてよりよく理解するためのシナリオが必要です。そこで、2 つの Web サーバーと 1 つのゲートウェイ サーバーがあり、ゲートウェイ サーバーから Web サーバーに送信されるリクエストのバランスをとる必要があるシナリオを使用します。


Pound Gateway Server : 172.16.1.222
Web Server 01 : 172.16.1.204
Web Server 02 : 192.168.1.161

ステップ 1: ゲートウェイ サーバーにポンド ロード バランサをインストールする

1. Pound をインストールする最も簡単な方法は、コンパイル済みの RPM パッケージを使用することです。RedHat ベースのディストリビューションの RPM は次の場所で見つけることができます。

  1. http://www.invoca.ch/pub/packages/pound/

あるいは、以下に示すように、EPEL リポジトリから Pound を簡単にインストールすることもできます。


yum install epel-release
yum install Pound

Pound をインストールした後、次のコマンドを発行して、インストールされているかどうかを確認できます。


rpm –qa |grep Pound

2. 次に、負荷を分散し、ポンド設定が正常に動作することをテストするために明確な識別子があることを確認するために、 2 つの Web サーバー が必要です。

ここには、IP アドレス 172.16.1.204192.168.1.161 を持つ 2 つのサーバーがあります。

使いやすさを考慮して、Python SimpleHTTPServer を作成して両方のサーバーにインスタント Web サーバーを作成しました。 Python SimpleHTTPServer について読む

私のシナリオでは、webserver01 をポート 8888 経由で 172.16.1.204 で実行し、 webserver02 で実行しています。 >192.168.1.161 ポート 5555 経由。

ステップ 2: ポンドロードバランサーの構成

3. 次に、構成を完了します。ポンドを正常にインストールすると、/etc にポンドの設定ファイル、つまり pound.cfg が作成されます。

Web サーバー間の負荷のバランスをとるために、サーバーとバックエンドの詳細を編集する必要があります。 /etc に移動し、pound.cfg ファイルを開いて編集します。


vi /etc/pound.cfg

以下の提案に従って変更を加えます。


ListenHTTP
    Address 172.16.1.222
    Port 80
End

ListenHTTPS
    Address 172.16.1.222
    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 172.16.1.204
        Port    8888
    End

    BackEnd
        Address 192.168.1.161
        Port    5555
    End
End

私のpound.cfg ファイルは次のようになります。

ListenHTTP 」タグと「ListenHTTPS 」タグの下に、POUND をインストールしたサーバーのIP アドレスを入力する必要があります。

デフォルトでは、サーバーはポート 80 を通じて HTTP リクエストを処理し、ポート 443 を通じて HTTPS リクエストを処理します。 「Service 」タグの下に、「BackEnd 」というサブタグを任意の数追加できます。バックエンド タグには、Web サーバーが実行されている IP アドレスとポート番号が含まれます。

ファイルを正しく編集した後、ファイルを保存し、以下のコマンドのいずれかを実行して POUND サービスを再起動します。


/etc/init.d/pound restart 
OR
service pound restart
OR
systemctl restart pound.service

4. 次に、確認します。 2 つの Web ブラウザを開いて、設定が正しく機能するかどうかを確認します。アドレス バーに POUND ゲートウェイの IP アドレスを入力し、表示される内容を確認します。

最初のリクエストは最初の webserver01 をロードし、他の Web ブラウザからの 2 番目のリクエストは 2 番目の webserver02 をロードする必要があります。

さらに、 負荷分散するために 2 つの Web サーバー があり、一方のサーバーのパフォーマンスは良好で、もう一方のサーバーのパフォーマンスはそれほど良くない場合のようなシナリオを考えてみましょう。

したがって、それらの間で負荷分散を行う場合は、どのサーバーに重点を置く必要があるかを考慮する必要があります。明らかに、優れたパフォーマンス仕様を持つサーバー向けです。

このように負荷を分散するには、pound.cfg ファイル内に 1 つのパラメータを追加するだけです。見てみましょう。

サーバー 192.168.1.161:5555 の方が優れたサーバーであると考えてください。次に、そのサーバーにさらに多くのリクエストをフローさせる必要があります。 192.168.1.161 サーバー用に設定された「BackEnd 」タグの下で、End タグの前にパラメータ「Priority 」を追加します。

以下の例を見てください。

優先度 」パラメータに使用できる範囲は1 ~ 9 です。定義しない場合は、デフォルト値の 5 が割り当てられます。

そうすれば負荷は均等に分散されます。優先順位番号を定義すると、POUND はより高い優先順位番号を持つサーバーをより頻繁にロードします。したがって、この場合、192.168.1.161:5555 はサーバー 172.16.1.204:8888 よりも頻繁にロードされます。

ステップ 3: 緊急時の故障の計画

緊急タグ: このタグは、すべてのバックエンド サーバーが停止した場合にサーバーをロードするために使用されます。次のように、pound.cfg の最後の終了タグの前に追加できます。


“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND は、どのバックエンド サーバーが稼動しており、どのバックエンド サーバーが稼動していないのかを常に追跡します。 pound.cfg に「Alive 」パラメータを追加することで、何秒後に POUND がバックエンド サーバーをチェックアウトするかを定義できます。

このパラメータを「Alive 30 」として使用して、30 秒に設定できます。パウンドは、応答していないバックエンド サーバーを一時的に無効にします。応答しないという場合は、サーバーが停止しているか、その時点で接続を確立できない可能性があります。

POUND は、pound.cfg ファイルで定義した期間が経過するたびに、無効になっているバックエンド サーバーをチェックし、サーバーが接続を確立できた場合は、POUND がサーバーとの連携を再開できるようにします。

7. POUND デーモンは poundctl コマンドによって処理されます。これにより、pound.cfg ファイルを編集する必要がなくなり、リスナー サーバーバックエンドサーバー、セッションなどを発行できるようになります。単一のコマンド。


Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. -c はソケットへのパスを定義します。
  2. -L/-l は、アーキテクチャのリスナーを定義します。
  3. -S/-s はサービスを定義します。
  4. -B/-b はバックエンド サーバーを定義します。

詳細については、poundctl のマニュアル ページを参照してください。

このハックを楽しんで、これに関するさらなるオプションを発見していただければ幸いです。ご提案やアイデアがございましたら、お気軽に以下にコメントしてください。 Tecmint とつながり続けて、便利な最新の How To を入手してください。

こちらもお読みください: Web サーバー用の XR Crossroads ロード バランサのインストール