ウェブサイト検索

RHEL/CentOS 上の Web サーバー用の「XR」 (クロスロード) ロード バランサーのセットアップ


Crossroads は、サービスに依存しない、Linux および TCP ベースのサービス用のオープンソースのロード バランスおよびフェイルオーバー ユーティリティです。これは、HTTP、HTTPS、SSH、SMTP、DNS などに使用できます。また、メモリ空間を 1 つだけ消費するマルチスレッド ユーティリティでもあり、負荷分散時のパフォーマンスの向上につながります。

XR がどのように機能するかを見てみましょう。ネットワーク クライアントとサーバーのネストの間に XR を配置し、クライアントのリクエストをサーバーにディスパッチして負荷を分散させることができます。

サーバーがダウンした場合、XR は次のクライアント要求を順番にある次のサーバーに転送するため、クライアントはダウンタイムを感じません。 XR でどのような状況に対処するかを理解するには、下の図を見てください。

2 つの Web サーバーがあり、1 つはゲートウェイ サーバーであり、クライアントのリクエストを受信してサーバー間で分散するために XR をインストールおよびセットアップします。

XR Crossroads Gateway Server : 172.16.1.204
Web Server 01 : 172.16.1.222
Web Server 02 : 192.168.1.161

上記のシナリオでは、ゲートウェイ サーバー (XR Crossroads) の IP アドレスは 172.16.1.222 で、webserver01172.16.1.222 であり、ポート 8888webserver02192.168.1.161 で、ポート 5555 を介してリッスンします。

ここで必要なのは、XR ゲートウェイがインターネットから受信するすべてのリクエストの負荷を分散し、負荷のバランスをとる 2 つの Web サーバー間でリクエストを分散することだけです。

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

1. 残念ながら、クロスクロスロードで利用できるバイナリ RPM パッケージはありません。ソース tarball から XR クロスロードをインストールする唯一の方法です。

XR をコンパイルするには、インストールをエラーなく続行するには、C++ コンパイラとGnu make ユーティリティをシステムにインストールする必要があります。

yum install gcc gcc-c++ make

次に、公式サイト (https://crossroads.e-tunity.com) にアクセスしてソース tarball をダウンロードし、アーカイブされたパッケージ (crossroads-stable.tar.gz など) を取得します。

あるいは、次の wget ユーティリティを使用してパッケージをダウンロードし、任意の場所 (例: /usr/src/) に解凍し、解凍されたディレクトリに移動して「<」を発行することもできます。 「strong>make install」コマンド。

wget https://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz
tar -xvf crossroads-stable.tar.gz
cd crossroads-2.74/
make install

インストールが完了すると、バイナリ ファイルが /usr/sbin/ の下に作成され、XR 設定が /etc 内に「xrctl.xml 」として作成されます。

2. 最後の前提条件として、2 つの Web サーバーが必要です。使いやすくするために、1 つのサーバーに 2 つの Python SimpleHTTPServer インスタンスを作成しました。

Python SimpleHTTPServer をセットアップする方法については、「SimpleHTTPServer を使用して 2 つの Web サーバーを簡単に作成する」の記事を参照してください。

前述したように、私たちは 2 つの Web サーバーを使用しており、それらはポート 8888 を介して 172.16.1.222 で実行されている webserver01 です。 webserver02 は、ポート 5555 を介して 192.168.1.161 で実行されています。

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

3. すべての要件が満たされています。次に、XR サーバーがインターネットから受信する Web サーバー間で負荷を分散するように xrctl.xml ファイルを構成する必要があります。

次に、vi/vim エディタで xrctl.xml ファイルを開きます。

vim /etc/xrctl.xml

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

<?xml version=<94>1.0<94> encoding=<94>UTF-8<94>?>
<configuration>
<system>
<uselogger>true</uselogger>
<logdir>/tmp</logdir>
</system>
<service>
<name>Tecmint</name>
<server>
<address>172.16.1.204:8080</address>
<type>tcp</type>
<webinterface>0:8010</webinterface>
<verbose>yes</verbose>
<clientreadtimeout>0</clientreadtimeout>
<clientwritetimout>0</clientwritetimeout>
<backendreadtimeout>0</backendreadtimeout>
<backendwritetimeout>0</backendwritetimeout>
</server>
<backend>
<address>172.16.1.222:8888</address>
</backend>
<backend>
<address>192.168.1.161:5555</address>
</backend>
</service>
</configuration>

ここでは、xrctl.xml 内で行われた非常に基本的な XR 構成を確認できます。 XR サーバーとは何か、バックエンド サーバーとそのポート、および XR の Web インターフェイス ポートとは何かを定義しました。

4. 次に、以下のコマンドを発行して XR デーモンを起動する必要があります。

xrctl start
xrctl status

5. わかりました。次に、構成が正常に動作しているかどうかを確認します。 2 つの Web ブラウザを開いて、XR サーバーの IP アドレスとポートを入力し、出力を確認します。

素晴らしい。うまくいきます。今度は XR で遊んでみましょう。

6. 次に、XR Crossroads ダッシュボードにログインし、Web インターフェイス用に構成したポートを確認します。 XR サーバーの IP アドレスと、xrctl.xml で設定した Web インターフェイスのポート番号を入力します。

http://172.16.1.204:8010

見た目はこんな感じです。理解しやすく、ユーザーフレンドリーで使いやすいです。各バックエンドサーバーが受信した接続数が右上隅に表示され、受信したリクエストに関する追加の詳細も表示されます。各サーバーが負担する必要がある負荷重量、最大接続数、負荷平均などを設定することもできます。

最も良い点は、xrctl.xml を設定しなくてもこれを実際に実行できることです。次の構文でコマンドを発行するだけで、作業が完了します。

xr --verbose --server tcp:172.16.1.204:8080 --backend 172.16.1.222:8888 --backend 192.168.1.161:5555

上記の構文の詳細な説明:

  1. –verbose は、コマンドが実行されたときに何が起こるかを示します。
  2. –server は、パッケージをインストールした XR サーバーを定義します。
  3. –backend は、トラフィックのバランスを取る必要がある Web サーバーを定義します。
  4. Tcp は、TCP サービスの使用を定義します。

CROSSROADS のドキュメントと構成の詳細については、公式サイト (https://crossroads.e-tunity.com/) を参照してください。

XR Corssroads を使用すると、さまざまな方法でサーバーのパフォーマンスを向上させ、ダウンタイムを保護し、管理タスクを簡単かつ便利に行うことができます。このガイドを楽しんでいただければ幸いです。提案や説明については、以下にお気軽にコメントしてください。便利なハウツーについては、Tecmint にお問い合わせください。

こちらもお読みください: Web サーバーの負荷を制御するための Pound Load Balancer のインストール