Web サーバ プラグインの使用

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Apache HTTP Server プラグインのインストールとコンフィグレーション

以下の節では、Apache HTTP Server プラグインをインストールしてコンフィグレーションする方法を説明します。

 


Apache HTTP Server プラグインの概要

Apache HTTP Server プラグインを使用すると、Apache HTTP サーバから WebLogic Server にリクエストをプロキシできます。このプラグインは、WebLogic Server の動的な機能を必要とするリクエストを WebLogic Server が処理できるようにすることによって Apache を拡張します。

このプラグインは、Apache サーバが静的ページを提供している環境で使用されることを想定しています。ドキュメント ツリーの他の部分 (HTTP サーブレットや JavaServer Pages によって最も適切な状態で生成される動的ページ) は、別のプロセス (おそらく別のホスト) で動作している WebLogic Server に委託されます。それでも、エンド ユーザ (ブラウザ) では、WebLogic Server に委託される HTTP リクエストは同じソースから来ているものと認識されます。

HTTP トンネリング (企業のファイアウォールを経由した HTTP リクエストおよび応答のアクセスを可能にする技術) もこのプラグインを介して動作するため、非ブラウザ クライアントに WebLogic Server サービスへのアクセスを提供できます。

Apache HTTP Server プラグインは、Apache HTTP サーバ内で Apache モジュールとして機能します。Apache モジュールは起動時に Apache サーバによってロードされ、特定の HTTP リクエストがそこに委託されます。Apache モジュールは、HTTP サーブレットと似ていますが、プラットフォームにネイティブなコードで記述されています。

Apache HTTP Server プラグインがサポートされているコンフィグレーションの情報については、「http://edocs.beasys.co.jp/e-docs/platform/suppconfigs/configs92/92_over/add-ons.html」を参照してください。

Apache バージョン 2.0 でのキープアライブ接続

Apache HTTP Server プラグインのバージョン 2.0 は、WebLogic Server との接続の再利用可能なプールを使用してパフォーマンスを向上させます。このプラグインは、同じクライアントからの後続リクエストにプール内の同じ接続を再利用することで、WebLogic Server との間で HTTP 1.1 キープアライブ接続を実装します。接続が 30 秒 (またはユーザ定義の時間) を超えて非アクティブな場合、その接続は閉じて、プールに返されます。この機能は、必要に応じて無効にできます。詳細については、「KeepAliveEnabled」を参照してください。

リクエストのプロキシ

プラグインでは指定されたコンフィグレーションに基づいてリクエストを WebLogic Server にプロキシします。リクエストは、リクエストの URL (または URL の一部) に基づいてプロキシできます。この方法は、パスに基づくプロキシです。要求されたファイルの MIME タイプに基づいてリクエストをプロキシすることもできます。また、これらの 2 つの方法を組み合わせて使用することも可能です。リクエストが両方の基準に一致する場合、そのリクエストはパスに基づいてプロキシされます。リクエストの種類ごとに、プラグインの補足的な動作を定義する追加パラメータを指定することもできます。詳細については、「Apache HTTP Server プラグインのコンフィグレーション」を参照してください。

Apache 2.2

このマニュアルは Apache 2.0 に関するものですが、同じ手順に従って、表 3-2 に示されているライブラリを Apache 2.2 で使用できます。

動作確認

Apache HTTP Server プラグインは、Linux、Solaris、Windows、および HPUX11 の各プラットフォームでサポートされています。Apache の特定のバージョンのサポートについては、「http://edocs.beasys.co.jp/e-docs/platform/suppconfigs/configs92/92_over/add-ons.html」を参照してください。

 


Apache HTTP Server プラグインのインストール

Apache HTTP Server プラグインは、Apache HTTP サーバに Apache モジュールとしてインストールして動的共有オブジェクト (DSO) としてリンクすることができます。

DSO は、実行時にサーバに動的にロードされるライブラリとしてコンパイルされるので、Apache を再コンパイルしなくてもインストールできます。

Apache HTTP Server プラグインの動的共有オブジェクトとしてのインストール

Apache プラグインは、Solaris、Linux、Windows、および HPUX11 プラットフォーム用の共有オブジェクト (.so) として配布されます。BEA WebLogic では、プラットフォーム、クライアントと Apache の間での SSL の使用と不使用、および SSL 暗号化の強度 (通常強度または 128 ビット - 128 ビット バージョンは 128 ビット バージョンの WebLogic Server をインストールする場合にのみインストールされる) に応じて、さまざまなバージョンの共有オブジェクト ファイルが提供されます。

表 3-1 に、さまざまなプラットフォームの共有オブジェクト ファイルを格納している WebLogic Server のインストール ディレクトリを示します (WL_HOME は WebLogic Platform の最上位のインストール ディレクトリです)。

表 3-2 には、各バージョンの Apache HTTP サーバと暗号化強度に対応する WebLogic Server Apache プラグイン モジュールを示します。

表 3-1 プラグインの共有オブジェクト ファイルの場所
オペレーティング システム
共有オブジェクトの場所
Solaris
WL_HOME/weblogic92/server/plugin/solaris/sparc
WL_HOME/weblogic92/server/plugin/solaris/x86
Linux
WL_HOME/weblogic92/server/plugin/linux/i686
WL_HOME/weblogic92/server/plugin/linux/ia64
WL_HOME/weblogic92/server/plugin/linux/s390
WL_HOME/weblogic92/server/plugin/linux/x86_64
Windows (Apache 2.0 のみ)
WL_HOME\weblogic92\server\plugin\win\32 または
WL_HOME\weblogic92\server\plugin\win\64
WL_HOME\weblogic92\server\plugin\win\x64
HPUX11
WL_HOME/weblogic92/server/plugin/hpux11/IPF64
WL_HOME/weblogic92/server/plugin/hpux11/PA_RISC
警告 : HP-UX11 上で Apache 2.0.x サーバを実行している場合、Apache サーバをビルドする前に下記の環境変数を設定する。HP-UX 上でリンク ライブラリがロードされる順番に関する問題のため、ビルド前に環境変数としてロード順序を事前に設定しておかないと、コア ダンプが生成される場合がある。Apache の configuremake、および make install 手順 (http://httpd.apache.org/docs-2.1/install.html#configure にある Apache HTTP サーバのドキュメントを参照) の前に、以下の環境変数を設定する。
export EXTRA_LDFLAGS="-lstd -lstream -lCsup -lm -lcl -ldld -lpthread"

次の表から適切なバージョンのプラグイン共有オブジェクトを選択します。

表 3-2 Apache プラグイン共有オブジェクト ファイルのバージョン
Apache のバージョン
通常強度の暗号化
128 ビットの暗号化
標準の Apache バージョン 2.0.x
mod_wl_20.so
mod_wl28_20.so
標準の Apache バージョン 2.2.x
mod_wl_22.so
mod_wl28_22.so

Apache HTTP Server プラグインを動的共有オブジェクトとしてインストールするには、次の操作を行います。

  1. 表 3-1 を参考にして、使用しているプラットフォームに対応した共有オブジェクトのディレクトリを見つけます。
  2. 表 3-2 で、使用するバージョンの Apache に対応したプラグイン共有オブジェクトファイルを見つけます。
  3. WebLogic Server Apache HTTP Server プラグインの mod_so.c モジュールが有効になっていることを確認します。
  4. Apache HTTP Server プラグインは、動的共有オブジェクト (DSO) として Apache HTTP サーバにインストールされます。Apache の DSO サポートは、mod_wl_20.so のロード前に有効にする必要のある mod_so.c というモジュールに基づいています。Apache で提供されるスクリプトを使用して Apache HTTP サーバをインストールした場合、mod_so.c はすでに有効になっているはずです。以下のコマンドを実行して、mod_so.c が有効であることを確認します。

    APACHE_HOME\bin\apache -l

    APACHE_HOME は、Apache HTTP サーバをインストールしたディレクトリです。

    このコマンドでは、有効なすべてのモジュールのリストが表示されます。mod_so.c がリストにない場合は、次のオプションがコンフィグレーションされるように、Apache HTTP サーバを再構築する必要があります。

    ...
    --enable-module=so
    --enable-rule=SHARED_CORE
    ...
    「Apache 2.0 Shared Object (DSO) Support」(http://httpd.apache.org/docs/2.0/dso.html) を参照してください。
  5. Apache 2.0.x の場合、Apache HTTP Server プラグインをインストールするには、mod_wl_20.so ファイルを APACHE_HOME\modules ディレクトリにコピーし、APACHE_HOME/conf/httpd.conf ファイルに次の行を手作業で追加する。
  6. LoadModule weblogic_module     modules/mod_wl_20.so
  7. Apache HTTP Server プラグインの追加パラメータを定義します。
  8. Apache HTTP Server プラグインは、「Web サーバ プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTP Server プラグインの動作を修正するには、以下のパラメータを定義します。

    • Location ブロック (パスを基準にしたプロキシに適用されるパラメータの場合)
    • または、IfModule ブロック (MIME タイプを基準にしたプロキシに適用されるパラメータの場合)
  9. 以下のコマンドで、APACHE_HOME\conf\httpd.conf ファイルの構文を検証します。
  10. APACHE_HOME\bin\apachectl -t 

    このコマンドの出力では、httpd.conf ファイルのエラーが示されるか、次のメッセージが返されます。

    Syntax OK
  11. Weblogic Server を再起動します。
  12. Apache HTTP サーバを起動 (コンフィグレーションを変更した場合は再起動) します。
  13. ブラウザを開き、Apache サーバの URL+「/weblogic/」を設定してプラグインをテストします。この設定では、WebLogic Server でデフォルト Web アプリケーションとして定義されている、デフォルトの WebLogic Server HTML ページ、ウェルカム ファイル、またはデフォルト サーブレットが開くはずです。次に例を示します。
  14. http://myApacheserver.com/weblogic/

 


Apache HTTP Server プラグインのコンフィグレーション

Apache HTTP サーバにプラグインをインストールしたら、WebLogic Server Apache プラグインのコンフィグレーションと、プラグインを使用するためのサーバのコンフィグレーションを行います。この節では、Apache サーバがプラグイン用の WebLogic Server ライブラリを Apache モジュールとして読み込むように Apache の httpd.conf ファイルを編集して、プラグイン用の WebLogic Server ライブラリを Apache モジュールとしてロードするように Apache サーバに通知し、そのモジュールで処理するアプリケーション リクエストを指定する方法を説明します。

httpd.conf ファイルの編集

Apache HTTP サーバの httpd.conf ファイルを編集し、Apache HTTP Server プラグインをコンフィグレーションします。

この節では、httpd.conf ファイルを編集して、WebLogic Server Apache プラグインを使用し、パスまたは MIME タイプに基づいてリクエストをプロキシし、HTTP トンネリングを有効にし、その他の WebLogic Server プラグインのパラメータを使用するようにサーバをコンフィグレーションする方法について説明します。

  1. httpd.conf ファイルを開きます。
  2. このファイルは、APACHE_HOME\conf\httpd.conf にあります (APACHE_HOME は Apache HTTP サーバのルート ディレクトリ)。サンプル ファイル httpd.conf については、「境界認証の設定」を参照してください。

  3. Apache 2.0.x に WebLogic Server モジュールが含まれていることを確認し、次の行を httpd.conf ファイルに手動で追加します。
  4. LoadModule weblogic_module   modules\mod_wl_20.so
  5. 以下のいずれかを定義する IfModule ブロックを追加します。
  6. クラスタ化されていない WebLogic Server の場合

    WebLogicHost および WebLogicPort パラメータ

    WebLogic Server のクラスタの場合

    WebLogicCluster パラメータ

    次に例を示します。

    <IfModule mod_weblogic.c>
      WebLogicHost myweblogic.server.com
      WebLogicPort 7001
    </IfModule>
  7. MIME タイプを基準にリクエストをプロキシするには、MatchExpression 行を IfModule ブロックに追加します。プロキシする基準として MIME タイプとパスの両方を指定した場合、パスを基準としたプロキシが MIME タイプに優先します。
  8. たとえば、クラスタ化されていない WebLogic Server に対する次の IfModule ブロックでは、MIME タイプが .jsp であるすべてのファイルがプロキシされます。

    <IfModule mod_weblogic.c>
      WebLogicHost myweblogic.server.com
      WebLogicPort 7001
      MatchExpression *.jsp
    </IfModule>

    次のように、複数の MatchExpressions を使用することもできます。

    <IfModule mod_weblogic.c>
      WebLogicHost myweblogic.server.com
      WebLogicPort 7001
      MatchExpression *.jsp
      MatchExpression *.xyz
    </IfModule>

    MIME タイプを基準に WebLogic Server のクラスタにリクエストをプロキシする場合は、WebLogicHost および WebLogicPort パラメータの代わりに WebLogicCluster パラメータを使用します。次に例を示します。

    <IfModule mod_weblogic.c>
      WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
      MatchExpression *.jsp
      MatchExpression *.xyz
    </IfModule>
  9. パスを基準にリクエストをプロキシするには、Location ブロックおよび SetHandler 文を使用します。SetHandler は、Apache HTTP Server プラグイン モジュールのハンドラを指定します。たとえば、次の Location ブロックでは、URL に /weblogic の含まれるすべてのリクエストがプロキシされます。
  10. <Location /weblogic>
    SetHandler weblogic-handler
    PathTrim /weblogic
    </Location>

    PathTrim パラメータには、WebLogic Server インスタンスにリクエストを渡す前に URL の先頭から切り取る文字列を指定します (「Web サーバ プラグインの一般的なパラメータ」を参照)。

  11. 必要に応じて、t3 または IIOP の HTTP トンネリングを有効にします。
    1. t3 プロトコルおよび weblogic.jar を使用する場合に HTTP トンネリングを有効にするには、次の Location ブロックを httpd.conf ファイルに追加します。
    2. <Location /HTTPClnt>
      SetHandler weblogic-handler
      </Location>
    3. IIOP (WebLogic Server シン クライアントの wlclient.jar で使用される唯一のプロトコル) を使用する場合に HTTP トンネリングを有効にするには、次の Location ブロックを httpd.conf ファイルに追加します。
    4. <Location /iiop>
      SetHandler weblogic-handler
      </Location>
  12. Apache HTTP Server プラグインの追加パラメータを定義します。
  13. Apache HTTP Server プラグインは、「Web サーバ プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTP Server プラグインの動作を修正するには、以下のいずれかでパラメータを定義します。

    • Location ブロック (パスを基準にしたプロキシに適用されるパラメータの場合)
    • または、IfModule ブロック (MIME タイプを基準にしたプロキシに適用されるパラメータの場合)

httpd.conf ファイルへの weblogic.conf ファイルのインクルード

別個のコンフィグレーション ファイルを複数用意する場合は、httpd.conf ファイルの IfModule ブロックの Apache Include ディレクティブを使用して、weblogic.conf という独立したコンフィグレーション ファイルでパラメータを定義できます。

<IfModule mod_weblogic.c>
# パラメータを定義する WebLogic Server 用コンフィグレーション ファイル
Include conf/weblogic.conf
</IfModule>

weblogic.conf ファイルの構文は、httpd.conf ファイルの構文と同じです。

この節では、weblogic.conf ファイルの作成方法を説明し、サンプルの weblogic.conf ファイルをインクルードします。

weblogic.conf ファイルの作成

weblogic.conf ファイルを作成する際には、以下の点に注意します。

weblogic.conf コンフィグレーション ファイルのサンプル

次の weblogic.conf ファイルの例をテンプレートとして使用して、ユーザの環境およびサーバに合うように変更できます。# で始まる行はコメントです。

WebLogic クラスタを使用した例
# このパラメータは、現在のモジュールに転送される
# すべての URL で共通。URL ごとにパラメータを
# オーバーライドする場合は、<Location> ブロック
# または <Files> ブロックで設定できる(WebLogicHost、
# WebLogicPort、WebLogicCluster、CookieName は除く)
<IfModule mod_weblogic.c>
  WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
  ErrorPage http://myerrorpage.mydomain.com
  MatchExpression *.jsp
</IfModule>
####################################################
複数の WebLogic クラスタを使用した例

この例で、ファイル名のパターン、HTTP リクエストの転送先となる WebLogic Server ホスト、およびその他のパラメータを表す MatchExpression パラメータの構文は次のとおりです。

MatchExpression [filename pattern] [WebLogicHost=host] | [paramName=value]

最初の MatchExpression パラメータではファイル名パターン *.jsp を指定してから、1 つの WebLogicHost 名を指定しています。パイプ記号に続いて、paramName=value の組み合わせで WebLogic Server が接続リクエストをリスンするポートを指定し、さらに Debug オプションを有効にするよう指定しています。2 番目の MatchExpression では、ファイル名パターン *.http と、WebLogicCluster ホストおよびそのポートを指定しています。パイプ記号に続いて、paramName=value の組み合わせでは、クラスタのエラー ページを指定しています。

# このパラメータは、現在のモジュールに転送される
# すべての URL で共通。URL ごとにパラメータを
# オーバーライドする場合は、<Location> ブロック
# または <Files> ブロックで設定できる (WebLogicHost、
# WebLogicPort、WebLogicCluster、CookieName は除く)
<IfModule mod_weblogic.c>
  MatchExpression *.jsp WebLogicHost=myHost|WebLogicPort=7001|Debug=ON
  MatchExpression *.html WebLogicCluster=myHost1:7282,myHost2:7283|ErrorPage=
    http://www.xyz.com/error.html
</IfModule>
WebLogic クラスタを使用しない例
# このパラメータは、現在のモジュールに転送される
# すべての URL で共通。URL ごとにパラメータを
# オーバーライドする場合は、<Location> ブロック
# または <Files> ブロックで設定できる (WebLogicHost、
# WebLogicPort、WebLogicCluster、CookieName は除く)
<IfModule mod_weblogic.c>
  WebLogicHost myweblogic.server.com
  WebLogicPort 7001
  MatchExpression *.jsp
</IfModule>
複数の名前ベースの仮想ホストをコンフィグレーションした例
# VirtualHost1 = localhost:80
<VirtualHost 127.0.0.1:80>
DocumentRoot "C:/test/VirtualHost1"
ServerName localhost:80 <IfModule mod_weblogic.c>
#... WLS パラメータ ...
WebLogicCluster localhost:7101,localhost:7201
# 例 : MatchExpression *.jsp <追加のパラメータ>
MatchExpression *.jsp PathPrepend=/test2
</IfModule>
</VirtualHost>
# VirtualHost2 = 127.0.0.2:80
<VirtualHost 127.0.0.2:80>
DocumentRoot "C:/test/VirtualHost1"
ServerName 127.0.0.2:80
<IfModule mod_weblogic.c>
#... WLS パラメータ ...
WebLogicCluster localhost:7101,localhost:7201
# Example: MatchExpression *.jsp <追加のパラメータ>
MatchExpression *.jsp PathPrepend=/test2
#... WLS パラメータ ...
</IfModule>
</VirtualHost> <IfModule mod_weblogic.c>

「ServerName」にはユニークな値を定義する必要があります。ユニークでない場合、一部のプラグイン パラメータが想定通りに機能しません。

Apache HTTP Server httpd.conf ファイルのテンプレート

この節では、Apache 2.0 用の httpd.conf ファイルのサンプルを紹介します。このサンプルをテンプレートとして使用し、ユーザの環境およびサーバに合うように変更できます。# で始まる行はコメントです。

Apache HTTP サーバでは大文字と小文字は区別されません。

####################################################
APACHE-HOME/conf/httpd.conf file
####################################################
LoadModule weblogic_module   libexec/mod_wl_20.so
<Location /weblogic>
SetHandler weblogic-handler
PathTrim /weblogic
ErrorPage http://myerrorpage1.mydomain.com
</Location>
<Location /servletimages>
SetHandler weblogic-handler
PathTrim /something
ErrorPage http://myerrorpage1.mydomain.com
</Location>
<IfModule mod_weblogic.c>
  MatchExpression *.jsp
  WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
  ErrorPage http://myerrorpage.mydomain.com
</IfModule>

 


境界認証の設定

Apache プラグインを介してアクセスされる WebLogic Server アプリケーションを保護するには、境界認証を使用します。

WebLogic ID アサーション プロバイダは、WebLogic Server アプリケーションにアクセスする外部システム (Apache HTTP Server プラグインを介して WebLogic Server アプリケーションにアクセスするユーザを含む) のトークンを認証します。次のように、プラグインを保護する ID アサーション プロバイダを作成します。

  1. WebLogic Server アプリケーションに対してカスタム ID アサーション プロバイダを作成します。『WebLogic セキュリティ プロバイダの開発』の「カスタム ID アサーション プロバイダの開発方法」を参照してください。
  2. Cert トークン タイプをサポートするようにカスタム ID アサーション プロバイダをコンフィグレーションし、Cert をアクティブなトークン タイプにします。『WebLogic セキュリティ プロバイダの開発』の「新しいトークン タイプの作成方法」を参照してください。
  3. Web アプリケーションの web.xml デプロイメント記述子ファイルで clientCertProxy を True に設定します。クラスタを使用する場合、必要であれば、Administration Console の [クラスタ|コンフィグレーション|全般] タブで、クラスタ全体に対して [クライアント証明書プロキシを有効化] 属性を true に設定します。clientCertProxy 属性は、サード パーティ製のプロキシ サーバ (ロード バランサ、SSL アクセラレータなど) で双方向の SSL 認証を有効にするために使用できます。clientCertProxy 属性の詳細については、『WebLogic Server Web アプリケーション、サーブレット、JSP の開発』の「context-param」を参照してください。
  4. clientCertProxy を設定したら、接続フィルタを使用して、Apache プラグインが動作しているマシンからの接続のみを WebLogic Server が受け入れるようにします。『WebLogic Security プログラマーズ ガイド』の「ネットワーク接続フィルタの使い方」を参照してください。
  5. プラグインと WebLogic Server の間で SSL を使用するには、Web サーバ プラグインで信頼性のある認証局ファイルが必要になります。Sun Microsystem の keytool ユーティリティを使用して、BEA_HOME/weblogic92/server/lib にある DemoTrust.jks キーストア ファイルから信頼性のある認証局ファイルをエクスポートします。
    1. wlsdemoca ファイルを抽出するには、たとえば次のようなコマンドを使用します。
      keytool -export -file trustedcafile.der -keystore DemoTrust.jks -alias wlsdemoca
    2. キーストアから別の信頼された CA ファイルを取得するには、エリアス名を変更します。

      キーストアの信頼された CA ファイルをすべて表示するには、次のコマンドを使用します。
      keytool -list -keystore DemoTrust.jks

      パスワードを要求されたら〔Enter〕を押します。

    3. 認証局ファイルを pem 形式に変換するには、コマンド java utils.der2pem trustedcafile.der を使用します。

詳細については、『WebLogic セキュリティ プロバイダの開発』の「ID アサーション プロバイダ」を参照してください。

 


Apache プラグインでの SSL の使用

セキュア ソケット レイヤ (SSL) プロトコルを使用すると、Apache HTTP Server プラグインと WebLogic Server の間で接続を保護できます。SSL プロトコルは、Apache HTTP Server プラグインと WebLogic Server の間でやり取りされるデータに機密性と整合性をもたらします。

Apache HTTP Server プラグインは、SSL プロトコルを使用して Apache HTTP Server プラグインと WebLogic Server の間の接続が保護されるかどうかを、(通常はブラウザによって) HTTP リクエストで指定される転送プロトコル (http または https) では判断しません。

HTTP クライアントと Apache HTTP サーバ間では相互 SSL を使用できますが、Apache HTTP サーバと WebLogic Server 間では一方向の SSL が使用されます。

Apache HTTP Server プラグインと WebLogic Server 間の SSL のコンフィグレーション

Apache HTTP Server プラグインと WebLogic Server の間で SSL プロトコルを使用するには、次の手順を行います。

  1. SSL 向けに WebLogic Server をコンフィグレーションします。詳細については、「SSL のコンフィグレーション」を参照してください。
  2. WebLogic Server の SSL リスン ポートをコンフィグレーションします。詳細については、「SSL のコンフィグレーション」を参照してください。
  3. Apache サーバで、httpd.conf ファイルの WebLogicPort パラメータを、手順 2 でコンフィグレーションした WebLogic Server の SSL リスン ポートに設定します。
  4. Apache サーバで、httpd.conf ファイルの SecureProxy パラメータを ON に設定します。
  5. SSL 接続の情報を定義する追加パラメータを httpd.conf ファイルで設定します。プラグインに関してコンフィグレーション可能な SSL パラメータのリストについては、「Web サーバ プラグインの SSL パラメータ」を参照してください。

SSL-Apache コンフィグレーションに関する問題

SSL を使用するように Apache プラグインをコンフィグレーションする際は、以下の確認済みの問題が発生します。

 


接続エラーとクラスタのフェイルオーバ

WebLogic Server に接続するときに、Apache HTTP Server プラグインは複数のコンフィグレーション パラメータを使用して WebLogic Server ホストへの接続の待ち時間と、接続確立後の応答の待ち時間を判断します。接続できないか、応答がない場合、このプラグインはクラスタ内の別の WebLogic Server インスタンスに接続してリクエストを送信しようとします。接続が失敗するか、クラスタ内のどの WebLogic Server からも応答がない場合は、エラー メッセージが送信されます。

図 3-1 は、プラグインがどのようにフェイルオーバを処理するのかを示しています。

接続失敗の考えられる原因

WebLogic Server ホストが接続リクエストに応答しない場合、以下の問題が考えられます。

すべての WebLogic Server インスタンスが応答しない場合、以下の問題が考えられます。

Connection_Refused エラーを減らすためのチューニング

大きな負荷がかかっていると、Apache プラグインはバックエンドの WebLogic Server インスタンスから CONNECTION_REFUSED エラーを受け取ることがあります。チューニングに関する以下のヒントを参考にすると、CONNECTION_REFUSED エラーを減らすことができます。

クラスタ化されていない単一の WebLogic Server でのフェイルオーバ

WebLogic Server のインスタンスが 1 つだけ動作している場合、プラグインは WebLogicHost パラメータで定義されているサーバにのみ接続しようとします。その試行が失敗すると、HTTP 503 エラー メッセージが返されます。プラグインは、ConnectTimeoutSecs を超えるまでその同じ WebLogic Server インスタンスへの接続を試み続けます。

動的サーバ リスト

httpd.conf または weblogic.conf ファイルで WebLogicCluster パラメータを使用して WebLogic Server のリストを指定すると、プラグインではクラスタ メンバー間でのロード バランシングの起点としてそのリストが使用されます。最初のリクエストがそれらのサーバの 1 つに転送された後に、クラスタ内のサーバの更新されたリストを格納する動的サーバ リストが返されます。更新されたリストではクラスタ内の新しいサーバが追加され、すでにクラスタから外れているか、リクエストに応答できなかったサーバが削除されます。このリストは、クラスタで変更が行われたときに HTTP 応答によって自動的に更新されます。

フェイルオーバ、クッキー、および HTTP セッション

リクエストがクッキー、POST データ、または URL エンコーディングを通じてセッション情報を格納している場合、そのセッション ID にはセッションが最初に確立された特定のサーバ インスタンス (プライマリ サーバ) への参照と元のセッションがレプリケートされる追加サーバ (セカンダリ サーバ) への参照が含まれています。クッキーが含まれているリクエストは、プライマリ サーバに接続しようとします。その試行が失敗すると、リクエストはセカンダリ サーバに転送されます。プライマリ サーバとセカンダリ サーバが両方とも失敗すると、セッションが失われて、プラグインは動的クラスタ リストの別のサーバにあらためて接続しようとします。図 3-1 を参照してください。

注意 : POST データが 64K を超える場合、プラグインは、セッション ID を取得するための POST データの解析を行いません。したがって、セッション ID を POST データに格納した場合、プラグインはリクエストを正しいプライマリまたはセカンダリ サーバにルーティングできないので、セッション データが失われるおそれがあります。
図 3-1 接続のフェイルオーバ

接続のフェイルオーバ

上図の赤で示すループ内での最大再試行回数は、ConnectTimeoutSecs ÷ ConnectRetrySecs で計算されます。


  ページの先頭       前  次