WebLogic Platform アプリケーションのデプロイメント
ロード バランサと Web プロキシ サーバの使用
プロダクション環境では、「WebLogic Platform ドメインの例」の説明に従ってロード バランサや Web プロキシ サーバを使用して、クライアントの接続要求を分散したり、クラスタ内でロード バランシングやフェイルオーバを行ったり、ローカル エリア ネットワークのアドレスを外部ユーザから隠蔽することでセキュリティを確保したりします。ロード バランサや Web プロキシ サーバを使用すると、ドメイン内のすべてのアプリケーションを外部クライアントに対して 1 つのアドレスであるように見せかけることができます。また、クライアント セッション情報のインメモリ レプリケーションを使用する場合にロード バランサや Web プロキシ サーバが必要になります。
この節では、ハードウェア ロード バランサや Web プロキシ サーバのコンフィグレーション方法について説明します。
ここには、次のトピックがあります。
外部ハードウェア ロード バランサによるロード バランシング
プロキシではなくロード バランシング ハードウェアを使用する場合は、ハードウェアが以下の説明のように互換性のあるパッシブまたはアクティブなクッキーの永続性メカニズムと SSL の永続性に対応している必要があります。
パッシブなクッキーの永続性を使用すると、WebLogic Server は、ロード バランサを介したクライアントへのセッション パラメータ情報を含むクッキーを記述できます。一部のハードウェア ロード バランサを使用する場合は、インメモリ レプリケーションで使用されるプライマリ サーバおよびセカンダリ サーバを追跡する WebLogic Server クッキーを上書きしないように、パッシブなクッキーの永続性メカニズムをコンフィグレーションする必要があります。特に、次の値を設定する必要があります。
文字列のオフセット値は、セッション ID 値に、区切り文字用の 1 バイトを加えた値
文字列の長さは 10 バイト
アクティブなクッキーの永続性は、メカニズムによって WebLogic HTTP セッション クッキーが上書きまたは変更されない限りサポートされます。この場合、追加コンフィグレーションは必要ありません。
SSL 永続性では、クライアントとクラスタ間のデータの暗号化と復号化がすべて行われ、クライアント上のプレーン テキスト クッキーを使用して、クライアントとクラスタ内のサーバとの間の関連付けが保持されます。
アクティブおよびパッシブなクッキーの永続性と SSL 永続性の詳細については、次の項目を参照してください。
『WebLogic Server クラスタ ユーザーズ ガイド』の「クラスタでのロード バランシング」の「サーブレットと JSP のロード バランシング」の「外部ロード バランサによる HTTP セッションのロード バランシング」
『WebLogic Server クラスタ ユーザーズ ガイド』の「WebLogic クラスタの設定」の「クラスタ実装の手順」の「パッシブなクッキーの永続性をサポートするロード バランサをコンフィグレーションする」
ロード バランシング ハードウェアを利用したクラスタの HTTP セッションの接続やフェイルオーバについては、『WebLogic Server クラスタ ユーザーズ ガイド』の「クラスタのフェイルオーバとレプリケーション」の「サーブレットと JSP のレプリケーションとフェイルオーバ」の「クラスタ化されたサーブレットと JSP へのロード バランシング ハードウェアを利用したアクセス」を参照してください。
F5 BIG-IP ハードウェア ロード バランサを使用する場合は、『WebLogic Server クラスタ ユーザーズ ガイド』の「クラスタに関する BIG-IP ハードウェアのコンフィグレーション」も参照してください。
Web プロキシ サーバによるロード バランシング
Web プロキシ サーバは、クラスタ化されたサーブレットや JSP のホストである WebLogic Server インスタンスのリストを保持して、HTTP リクエストをそれらのインスタンスに転送します。『WebLogic Server クラスタ ユーザーズ ガイド』の「クラスタでのロード バランシング」の「EJB と RMI オブジェクトのロード バランシング」の「ラウンドロビンのロード バランシング」に説明されているように、リクエストはデフォルトではラウンドロビン方式で転送されます。
Web プロキシ サーバの実装方法としては、WebLogic Server で HttpClusterServlet
を使用する方法や、次のいずれかの Web サーバと関連プロキシ プラグインを使用する方法があります。
Netscape Enterprise Server と Netscape (プロキシ) プラグイン
Apache と Apache Server (プロキシ) プラグイン
Microsoft Internet Information Server と Microsoft IIS (プロキシ) プラグイン
サーブレットや JSP のロード バランシングのために必要な Web プロキシ サーバのコンフィグレーション方法については、次の表を参照してください。
表 6-1 Web プロキシ サーバのコンフィグレーション
Web サーバ
|
設定方法
|
WebLogic Server
|
以下に記載されている説明に従って、HttpClusterServlet を Web プロキシ サーバとして設定する。
|
サードパーティ製の Web サーバ
|
『WebLogic Server における Web サーバ プラグインの使い方』の説明に従って、対応するプラグインを設定する。
|
ロード バランサや Web プロキシ サーバをコンフィグレーションする際の考慮事項
ロード バランサや Web プロキシ サーバをコンフィグレーションする際の考慮事項を以下に示します。
WebLogic Workshop ランタイムを Web サーバ プロキシと連携するようにコンフィグレーションする必要がある場合があります。詳細については、WebLogic Workshop オンライン ヘルプの「Workshop アプリケーションをクラスタ化する」にある「プロキシ サーバの設定」を参照してください。.
自動フェイルオーバに対応するために、WebLogic Server はクラスタ化されたサーブレットや JSP にアクセスするクライアントの HTTP セッション ステートをレプリケートして、メモリ、ファイル システム、またはデータベースに保持します。HTTP セッション ステートのインメモリ レプリケーションを利用するには、WebLogic プロキシ サーバのコンフィグレーションが一致した Web サーバの集合、またはロード バランシング ハードウェアのどちらかを使用して WebLogic Server クラスタにアクセスする必要があります。
プライマリ セッション ステートは、クライアントが最初に接続するサーバに格納されます。デフォルトでは、WebLogic Server はプライマリ セッション ステートが配置されるマシンとは別のマシン上にセッション ステートのレプリカを作成しようと試みます。レプリケーション グループを使用することにより、セカンダリ ステートが配置される場所を制御できます。レプリケーション グループとは、セッション ステートのレプリカを格納するために使用するクラスタ内のサーバの優先順リストのことです。詳細については、以下を参照してください。
アプリケーションにおけるセッション レプリケーションの有効化については、「セッション レプリケーションの有効化」を参照。
レプリケーション グループの定義については、『WebLogic Server クラスタ ユーザーズ ガイド』の「レプリケーション グループの使用」を参照。
HTTP セッション レプリケーションについて、およびクラスタ化されたサーブレットや JSP にロード バランサを利用してアクセスする方法については、『WebLogic Server クラスタ ユーザーズ ガイド』の「クラスタのフェイルオーバとレプリケーション」の「サーブレットと JSP のレプリケーションとフェイルオーバ」を参照。
ロード バランサによる T3 トンネリングを使用する場合、ロード バランシング アルゴリズムをいずれかのサーバ アフィニティ アルゴリズムに設定して、トンネリング接続を通じてのみクライアントが接続するようにする必要があります。詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「クラスタでのロード バランシング」の「サーブレットと JSP のロード バランシング」の「ラウンドロビン アフィニティ、重みベース アフィニティ、およびランダム アフィニティ」を参照してください。
HTTP トラフィックの分散に加えて、外部ロード バランサは、T3 とデフォルト チャネルを介した Java クライアントからの初期コンテキスト リクエストを分散できます。オブジェクトレベルのロード バランシングについては、『WebLogic Server クラスタ ユーザーズ ガイド』の「クラスタでのロード バランシング」の「EJB と RMI オブジェクトのロード バランシング」を参照してください。