ナビゲーションをスキップ

WebLogic Server における Web サーバ プラグインの使い方

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

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

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

 


Apache HTTP Server プラグインの概要

Apache HTTP Server プラグインは、Apache HTTP サーバから WebLogic Server クラスタまたはインスタンスへリクエストをプロキシします。このプラグインは、WebLogic Server の動的な機能を必要とするロード バランシングやリクエストを WebLogic Server が処理できるようにすることによって Apache を拡張します。プラグインのコンフィグレーション ファイルで WebLogicHost および WebLogicPort パラメータを使用して、対象の WebLogic Server インスタンスを指定します。対象として WebLogic Server クラスタまたはクラスタ化されていないサーバのグループを指定するには、WebLogicCluster パラメータを使用します。プラグイン パラメータの設定の詳細については、「Web サーバ プラグインのパラメータ」を参照してください。

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

HTTP トンネリング (企業のファイアウォールを経由した HTTP リクエストおよび応答のアクセスを提供する技術) はこのプラグインを通じて機能できます。「httpd.conf ファイルの編集」を参照してください。

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

Apache バージョン 1.3.x の制限事項

Apache HTTP Server のバージョン 1.3.x では、以降のバージョンにはない WebLogic Server プラグインに影響の及ぶ制限事項があります。

キープアライブ接続はサポートされない

Apache HTTP Server プラグインのバージョン 1.3.x は、リクエストごとにソケットを作成し、応答を読み込んでからソケットを閉じます。Apache HTTP サーバは多重処理されるため、WebLogic Server と Apache HTTP Server プラグインの間では接続プールとキープアライブ接続はサポートされていません。

矛盾した状態

Apache HTTP Server はマルチプロセス アーキテクチャであり、プラグインの状態は複数の子プロセス間で同期されません。次のような問題が発生する可能性があります。

このような矛盾を一時的に修正するには、Apache サーバを再起動するか HUP 信号 (kill -HUP) を送信して、すべてのプラグイン プロセスを更新します。

この問題を回避するには、Apache 2.0.x にアップグレードし、マルチスレッドおよびシングルプロセス モデルの mpm_worker_module を使用するように Apache をコンフィグレーションします。このモジュールの httpd.conf コンフィグレーションの例は次のとおりです。

<IfModule worker.c>
StartServers         1
MaxClients          75
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
ServerLimit          3
</IfModule>

このモジュールの詳細については、「Apache MPM worker」を参照してください。

Apache バージョン 2.0 でサポートされるキープアライブ接続

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

動作確認

Apache HTTP Server プラグインは、Linux、Solaris、AIX、Windows、および HPUX11 の各プラットフォームでサポートされています。プラグインはすべてのリリースのすべてのオペレーティング システムでサポートされているわけではありません。Apache の特定のバージョンのプラットフォーム サポートについては、『WebLogic Server 8.1の サポート対象のコンフィグレーション』の「サポート対象の Web サーバ、ブラウザ、およびファイアウォール」を参照してください。

 


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

Apache HTTP Server プラグインは、Apache HTTP サーバで Apache モジュールとしてインストールします。モジュールは、静的リンク モジュール (Apache バージョン 1.3.x の場合のみ) または動的共有オブジェクト (DSO) としてコンパイルし、Apache にリンクできます。

使用するモジュールのタイプを選択するときは以下の点を考慮してください。

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

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

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

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

表 2-1 プラグインの共有オブジェクト ファイルの場所

オペレーティング システム

共有オブジェクトの場所

Solaris

WL_HOME/server/lib/solaris

Linux

WL_HOME/server/lib/linux/i686
WL_HOME/server/lib/linux/ia64
WL_HOME/server/lib/linux/s390

Windows

WL_HOME\server\bin

AIX

WL_HOME/server/lib/aix

HPUX11

WL_HOME/server/lib/hpux11

警告 : HP-UX11 上で Apache 2.0.x サーバを実行している場合、Apache server サーバをビルドする前に下記の環境変数を設定する。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"


 

次の表を基準に適切なバージョンのプラグイン共有オブジェクトを選択してください。

表 2-2 Apache プラグイン共有オブジェクト ファイルのバージョン

Apache のバージョン

通常強度の暗号化

128 ビットの暗号化

標準の Apache バージョン 1.x

mod_wl.so

mod_wl128.so

Apache w/ SSL/EAPI
バージョン 1.x

(Stronghold、
modssl など)

mod_wl_ssl.so

mod_wl128_ssl.so

Apache + Raven SSL
バージョン 1.x

Raven SSL で配布されるパッチによってプラグインと標準の共有オブジェクトとの互換性がなくなるので必要になる。

mod_wl_ssl_raven.so

mod_wl128_ssl_raven.so

標準の Apache バージョン 2.0.x

mod_wl_20.so

mod_wl28_20.so


 

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

  1. インストールされている WebLogic Server で、表 2-1 を参考にして、使用しているプラットフォームに対応した共有オブジェクトのディレクトリを見つけます。
  2. 表 2-2 で使用するバージョンの Apache に対応したプラグイン共有オブジェクトファイルを見つけます。
  3. WebLogic Server Apache HTTP Server プラグインの mod_so.c モジュールが有効になっていることを確認します。
  4. Apache HTTP Server プラグインは、Apache 動的共有オブジェクト (DSO) として Apache HTTP サーバにインストールされます。Apache の DSO サポートは、mod_wl.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
    ...

    http://httpd.apache.org/docs/dso.html の「Apache 1.3 Dynamic Shared Object (DSO) Support」を参照してください。

  5. Apache HTTP Server プラグイン モジュールをインストールします。
  6. Apache HTTP Server プラグインのコンフィグレーション」の説明に従って、httpd.conf で Apache HTTP Server プラグインの追加パラメータを定義します。
  7. Apache HTTP Server プラグインは、「Web サーバ プラグインの一般的なパラメータ」にリストされているパラメータを認識します。

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

Apache HTTP Server プラグインの静的リンク モジュールとしてのインストール

Apache HTTP Server プラグインを静的リンク モジュールとしてインストールするには、次の操作を行います。

  1. 次のコマンドで Apache プラグイン配布キットを復元します。
  2. tar -xvf apache_1.3.x.tar
  3. 復元した配布キットの中で src/modules ディレクトリに移動します。
  4. weblogic というディレクトリを作成します。
  5. 使用しているプラットフォーム用のリンク ライブラリ ファイルを見つけます。
  6. 各ライブラリ ファイルは、プラットフォームおよび SSL 暗号化の強度 (128 ビット バージョンは、128 ビット バージョンの WebLogic Server をインストールする場合のみインストールされる) に応じて別々のバージョンとして配布されます。ライブラリ ファイルは、WebLogic Server の以下のディレクトリに配置されています。

    表 2-3 プラグイン ファイルの場所

    オペレーティング システム

    共有オブジェクトの場所

    Solaris

    WL_HOME/Server/lib/solaris

    Linux

    WL_HOME/Server/lib/linux

    注意 : 次の環境変数も設定する必要がある。
    LDFLAGS = "-lpthread"

    HPUX11

    WL_HOME/Server/lib/hpux11

    警告 : HP-UX11 上で Apache 2.0.x サーバを実行している場合、Apache server サーバをビルドする前に下記の環境変数を設定する。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"


     

    次の表を基準として適切な共有オブジェクトを選択してください。

    表 2-4 各暗号化レベルの静的リンク モジュール

    Apache のバージョン

    通常強度の暗号化

    128 ビットの暗号化

    標準の Apache バージョン 1.3.x

    libweblogic.a

    libweblogic128.a

    Gnu C Compiler (gcc) を使用する場合、推奨バージョンは gcc 2.95.x です。

  7. Makefile.libdir、Makefile.tmpl を WebLogic Server の lib ディレクトリから src\modules\weblogic にコピーします。
  8. libweblogic.a (128 ビットのセキュリティを使用する場合は libweblogic128.a) をリンク ライブラリ ファイルの格納されている同じディレクトリから src\modules\weblogic にコピーします。
  9. 通常の強度の暗号化 (56 ビットまたは 40 ビットなど) を使用する場合は、Apache 1.3 のホーム ディレクトリから次のコマンドを実行します。
  10. configure --activate-module=src\modules\weblogic\libweblogic.a

    128 ビットの暗号化を使用する場合は、Apache 1.3 のホーム ディレクトリから次のコマンドを (1 行で) 実行します。

    configure--activate-module=
     src\modules\weblogic\libweblogic128.a
  11. 次のコマンドを実行します。
  12. make
  13. 次のコマンドを実行します。
  14. make install
  15. Apache HTTP Server プラグインのコンフィグレーション」の説明に従って、Apache HTTP Server プラグインのパラメータを定義します。

 


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

Apache HTTP サーバにプラグインをインストールしたら、WebLogic Server Apache プラグインのコンフィグレーションと、プラグインを使用するための 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 プラグインのパラメータを使用するように Apache サーバをコンフィグレーションする方法について説明します。

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

  3. WebLogic Server モジュールがインクルードされていることを確認します。
  4. 以下のいずれかを定義する IfModule ブロックを追加します。
  5. クラスタ化されていない WebLogic Server の場合

    WebLogicHost および WebLogicPort パラメータ

    WebLogic Server インスタンスのクラスタの場合

    WebLogicCluster パラメータ

    次に例を示します。

    <IfModule mod_weblogic.c>
      WebLogicHost myweblogic.server.com
      WebLogicPort 7001
    </IfModule>
  6. MIME タイプを基準にリクエストをプロキシするには、MatchExpression 行を IfModule ブロックに追加します。プロキシする基準として MIME タイプとパスの両方を指定した場合、パスを基準としたプロキシが MIME タイプに優先します。
  7. たとえば、クラスタ化されていない 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>
  8. パスを基準にリクエストをプロキシするには、Location ブロックおよび SetHandler 文を使用します。SetHandler は、Apache HTTP Server プラグイン モジュールのハンドラを指定します。たとえば、次の Location ブロックでは、URL に /weblogic の含まれるすべてのリクエストがプロキシされます。
  9. <Location /weblogic>
    SetHandler weblogic-handler
    PathTrim /weblogic
    </Location>

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

  10. 必要に応じて、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>
  11. Apache HTTP Server プラグインの追加パラメータを定義します。
  12. Apache HTTP Server プラグインは、「Web サーバ プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTP Server プラグインの動作を修正するには、以下のいずれかでパラメータを定義します。

  13. 以下のコマンドで、APACHE_HOME\conf\httpd.conf ファイルの構文を検証します。
  14. For Apache 1.x, APACHE_HOME\bin\apachect1 configtest
    For Apache 2.0.x, APACHE_HOME\bin\Apache -t 

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

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

httpd.conf ファイルへの weblogic.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 ファイルを作成する際には、以下の点に注意してください。

<IfModule mod_weblogic.c>
  WebLogicCluster	agarwalp02:8005,agarwalp02:8006
  Debug ON
  WLLogFile             c:/tmp/global_proxy.log 
  WLTempDir             "c:/myTemp"
  DebugConfigInfo       On
  KeepAliveEnabled ON
  KeepAliveSecs  15
</IfModule>
<Location /jurl>
  SetHandler weblogic-handler
  WebLogicCluster agarwalp01:7001
</Location>
<Location /web>
  SetHandler weblogic-handler
  PathTrim		/web
  Debug  		OFF
  WLLogFile 		c:/tmp/web_log.log
</Location>
<Location /foo>
  SetHandler weblogic-handler
  PathTrim		/foo
  Debug  		ERR
  WLLogFilec:/tmp/foo_proxy.log
</Location>

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
# 例 : MatchExpression *.jsp <追加パラメータ>
MatchExpression *.jsp PathPrepend=/test2
#... WLS パラメータ ...
</IfModule>
</VirtualHost> <IfModule mod_weblogic.c>

「ServerName」にユニークな値を定義しないと、一部のプラグイン パラメータが正常に機能しません。

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

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

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

####################################################
APACHE-HOME/conf/httpd.conf file
####################################################
LoadModule weblogic_module   libexec/mod_wl.so
AddModule mod_weblogic.c
<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 Server のセキュリティ プロバイダの開発方法については、「カスタム ID アサーション プロバイダの開発方法」を参照してください。
  2. Cert トークン タイプをサポートするようにカスタム ID アサーション プロバイダをコンフィグレーションし、Cert をアクティブなトークン タイプにします。WebLogic Server のセキュリティ プロバイダの開発方法については、「新しいトークン タイプの作成方法」を参照してください。

Web アプリケーションの web.xml デプロイメント記述子ファイルで clientCertProxy を True に設定します。クラスタを使用する場合は、必要に応じて、Administration Console でクラスタ全体の [クライアント証明書プロキシを有効化] 属性を true に設定します。このパラメータは、ロード バランサや SSL アクセラレータなどのサード パーティ製のプロキシ サーバで、双方向 SSL 認証を有効にする場合にも使用できます。clientCertProxy 属性の詳細については、『WebLogic Server Web アプリケーションの開発』の「context-param」を参照してください。

  1. clientCertProxy を設定したら、接続フィルタを使用して、Apache プラグインが動作しているマシンからの接続のみを WebLogic Server が受け入れるようにします。『WebLogic Security プログラマーズ ガイド』の「ネットワーク接続フィルタの使い方」を参照してください。

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

 


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

セキュア ソケット レイヤ (SSL) プロトコルを使用すると、Apache HTTP Server プラグインと WebLogic Server の間で接続を保護できます。SSL プロトコルは、Apache HTTP Server プラグインと WebLogic Server の間でやり取りされるデータに機密性と整合性をもたらします。weblogic.conf ファイルを使用する場合は、SSL を使用できません (「httpd.conf ファイルへの weblogic.conf ファイルのインクルード」を参照)。

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

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

注意 : Red Hat Apache 2.0.x で <Location> タグを使用するとコア ダンプが発生します。 パスまたは MIME タイプに基づいてリクエストをプロキシする場合は、<Location> タグではなく MATCH 式を使用してください。

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 パラメータ」を参照してください。
  6. プラグインと WebLogic Server の間で SSL を使用するには、Web サーバ プラグインで信頼性のある認証局ファイルが必要になります。Sun Microsystems の keytool ユーティリティを使用して、BEA_HOME/weblogic81/server/lib にある DemoTrust.jks キーストア ファイルから信頼性のある認証局ファイルをエクスポートします。
    1. wlsdemoca ファイルを抽出するには、たとえば次のようなコマンドを使用します。
    2. keytool -export -file trustedcafile.der -keystore DemoTrust.jks -alias wlsdemoca

      キーストアから別の信頼された CA ファイルを取得するには、エイリアス名を変更します。

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

      keytool -list -keystore DemoTrust.jks

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

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

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

以下に、SSL を使用するように Apache プラグインをコンフィグレーションする場合に発生する可能性のある確認済みの問題を示します。

 


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

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

図 2-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 にはセッションが最初に確立された特定のサーバ インスタンス (プライマリ サーバ) への参照と元のセッションがレプリケートされる追加サーバ (セカンダリ サーバ) への参照が含まれています。クッキーが含まれているリクエストは、プライマリ サーバに接続しようとします。その試行が失敗すると、リクエストはセカンダリ サーバに転送されます。プライマリ サーバとセカンダリ サーバが両方とも失敗すると、セッションが失われて、プラグインは動的クラスタ リストの別のサーバにあらためて接続しようとします。 「図 2-1 接続のフェイルオーバ」を参照してください。

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

図 2-1 接続のフェイルオーバ

接続のフェイルオーバ


 

注意 :

プラグインによって送出される HTTP エラー コードは、状況に応じて異なります。以下の状況では、HTTP エラー コード 500 が返されます。

一方、以下の状況では HTTP エラー コード 503 が返されます。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次