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 で、webserver01 は 172.16.1.222 であり、ポート 8888 と webserver02 は 192.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
上記の構文の詳細な説明:
- –verbose は、コマンドが実行されたときに何が起こるかを示します。
- –server は、パッケージをインストールした XR サーバーを定義します。
- –backend は、トラフィックのバランスを取る必要がある Web サーバーを定義します。
- Tcp は、TCP サービスの使用を定義します。
CROSSROADS のドキュメントと構成の詳細については、公式サイト (https://crossroads.e-tunity.com/) を参照してください。
XR Corssroads を使用すると、さまざまな方法でサーバーのパフォーマンスを向上させ、ダウンタイムを保護し、管理タスクを簡単かつ便利に行うことができます。このガイドを楽しんでいただければ幸いです。提案や説明については、以下にお気軽にコメントしてください。便利なハウツーについては、Tecmint にお問い合わせください。
こちらもお読みください: Web サーバーの負荷を制御するための Pound Load Balancer のインストール