| Oracle® Fusion Middleware Oracle WebLogic ServerにおけるWebサーバー1.1プラグインの使用 11g リリース1 (11.1.1) B61009-06 |
|
![]() 前 |
![]() 次 |
この章では、Apache HTTP Serverプラグインをインストールして構成する方法を説明します。内容は以下のとおりです。
|
注意: Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするには、mod_wl_ohsプラグインを使用します。このプラグインはApache HTTP Server用のプラグインと似ていますが、別途ダウンロードしてインストールする必要はありません。mod_wl_ohsを構成する方法は、第2章「Oracle HTTP Server用mod_wl_ohsプラグインの構成」を参照してください。 |
1.2項「バージョン1.1プラグインの入手」の説明に従ってApache HTTP Serverプラグインをダウンロードした後、Apache HTTP ServerにApache HTTP Serverモジュールとしてインストールできます。
Apache HTTP Serverプラグインをインストールする前に、次のことを行います:
1.2項「バージョン1.1プラグインの入手」の説明に従って、Apache HTTP Serverプラグインをダウンロードします。
プラグインzipを展開する場所(PLUGIN_HOME; たとえば、/home/myhome/weblogic-plugins-1.1/)
プラグインzip配布をPLUGIN_HOME(たとえば、/home/myhome/weblogic-plugins-1.1/)に展開します。この配布には次のファイルが含まれています:
SSLを使用する場合、JDK 6をインストールします。orapkiユーティリティを使用するには、JDK 6をインストールしている必要があります。このユーティリティは、SSLで使用するためにウォレットや証明書失効リストのような公開鍵インフラストラクチャ(PKI)要素を管理します。
互換性のあるApache HTTP Serverをインストールしていることを確認します。
詳細については、以下を参照してください。
http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
サポートされているバージョンのOracle WebLogic Serverが構成済で、ターゲット・システムで実行されていることを確認します。このサーバーは、プラグインzip配布を展開したシステム上で実行されている必要はないことに注意してください。サポートされているOracle WebLogic Serverのバージョンは、次を参照してください。
http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
Apache HTTP Serverプラグインは、UNIXプラットフォーム用の共有オブジェクト(.so)およびWindows用のDLLとして配布されます。
Apache HTTP Serverプラグインをインストールするには:
weblogic-plugins-1.1/libフォルダが、UNIXシステム上のLD_LIBRARY_PATH(およびWindowsシステム上のPATH)に含まれていることを確認します。含まれていない場合、Apache HTTP Serverの開始中にリンケージ・エラーが発生します。
Windowsの場合、ダウンロードしたプラグイン・ファイルを解凍した場所でlib/mod_wl.soまたはlib\mod_wl.dllを見つけます。例: /home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
mod_so.cモジュールが有効であることを確認します。
Apacheによって提供されるApache HTTP Serverをインストールした場合、mod_so.cはすでに有効化されています。次のコマンドを実行して、mod_so.cが有効であることを確認します。
Windowsの場合
APACHE_HOME\bin> apachectl -l
UNIX/Linuxの場合
APACHE_HOME/bin/apachectl -l
(APACHE_HOMEはApache HTTP Serverのインストールを含むディレクトリです。)
このコマンドは、有効なすべてのモジュールのリストを表示します。mod_so.cがリストにない場合、Apache HTTP Serverを再構築し、次の構成オプションが指定されていることを確認します。
... --enable-module=so ...
バックアップとしてAPACHE_HOME/bin/httpd.confファイルのコピーを作成します。
httpd.confファイルを開きます。
次の文を追加してApache 2.2.x用Apache HTTP Serverプラグイン・モジュールをインストールします。Windowsの場合は、.dllファイルを指定します。
LoadModule weblogic_module /home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
次のコマンドを実行して、httpd.confファイルの構文を確認します。
Windowsの場合
APACHE_HOME\bin> apachectl -t
UNIX/Linuxの場合
> APACHE_HOME/bin/apachectl -t
httpd.confファイルにエラーがある場合、このコマンドの実行結果としてエラーが出力され、それ以外の場合は次の結果が出力されます。
Syntax OK
この項では、HTTPトンネリングを有効にし、Oracle WebLogic Serverの他のプラグイン・パラメータを使用するために、httpd.confファイルを編集してパスまたはMIMEタイプによりリクエストをプロキシする方法について説明します。
Apache HTTP Serverインストールのhttpd.confファイルを編集し、Apache HTTP Serverプラグインを構成します。
httpd.confファイルをまだ開いていない場合は、開きます。
MIMEタイプによってリクエストをプロキシするには、次のいずれかを定義するIfModuleブロックを追加します。
クラスタリングされていないWebLogic Serverの場合: WebLogicHostおよびWebLogicPortパラメータ。
WebLogic Serverのクラスタの場合: WebLogicClusterパラメータ。
例:
<IfModule mod_weblogic.c> WebLogicHost myweblogic.example.com WebLogicPort 7001 Debug ALL DebugConfigInfo ON WLLogFile /tmp/wl-proxy.log </IfModule>
MIMEタイプによってリクエストをプロキシするには、MatchExpression行をIfModuleブロックに追加します。MIMEタイプおよびパスによるプロキシの両方を有効にした場合、パスによるプロキシがMIMEタイプによるプロキシに優先することに注意してください。
たとえば、クラスタリングされていないWebLogic Serverに対する次のIfModuleブロックでは、MIMEタイプが.jspであるすべてのファイルがプロキシされます。
<IfModule mod_weblogic.c> WebLogicHost my-weblogic.server.com WebLogicPort 7001 MatchExpression *.jsp Debug ALL DebugConfigInfo ON WLLogFile /tmp/wl-proxy.log </IfModule>
次のように、複数のMatchExpressionsを使用することもできます。
<IfModule mod_weblogic.c> WebLogicHost my-weblogic.server.com WebLogicPort 7001 MatchExpression *.jsp MatchExpression *.xyz Debug ALL DebugConfigInfo ON WLLogFile /tmp/wl-proxy.log </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>
パスによってリクエストをプロキシするには、LocationブロックおよびSetHandler文を使用します。SetHandlerは、Apache HTTP Serverプラグイン・モジュールのハンドラを指定します。たとえば、次のLocationブロックでは、URLに/weblogicが含まれるすべてのリクエストがプロキシされます。
<Location /weblogic> SetHandler weblogic-handler PathTrim /weblogic </Location>
PathTrimパラメータには、WebLogic Serverインスタンスにリクエストを渡す前にURLの先頭から削除する文字列を指定します(7.1項「Webサーバー・プラグインの一般的なパラメータ」を参照してください)。
PathTrimパラメータは<Location>タグの中で構成する必要があります。SSLを使用するためにApacheプラグインを構成する際に、次の既知の問題が発生します。
次の構成は正しくありません:
<Location /weblogic> SetHandler weblogic-handler </Location> <IfModule mod_weblogic.c> WebLogicHost localhost WebLogicPort 7001 PathTrim /weblogic </IfModule>
次の構成は正しい設定です。
<Location /weblogic> SetHandler weblogic-handler PathTrim /weblogic </Location>
WebLogic Server Apacheプラグインの現在の実装では、Apache SSLに関して複数の証明書ファイルの使用はサポートされていません。
必要に応じて、t3またはIIOPのHTTPトンネリングを有効にします。
t3プロトコルおよびweblogic.jarを使用する場合にHTTPトンネリングを有効にするには、次のLocationブロックをhttpd.confファイルに追加します。
<Location /bea_wls_internal/HTTPClnt> SetHandler weblogic-handler </Location>
IIOP (WebLogic Serverシン・クライアントのwlclient.jarで使用される唯一のプロトコル)を使用する場合にHTTPトンネリングを有効にするには、次のLocationブロックをhttpd.confファイルに追加します。
<Location /bea_wls_internal/iiop> SetHandler weblogic-handler </Location>
Apache HTTP Serverプラグインの追加パラメータを定義します。
Apache HTTP Serverプラグインは、7.1項「Webサーバー・プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTP Serverプラグインの動作を変更するには、次のいずれかでパラメータを定義します。
Locationブロック(パスによるプロキシに適用されるパラメータの場合)、または
グローバル/仮想ホスト・スコープ(MIMEタイプによるプロキシに適用されるパラメータの場合)
次のコマンドを実行して、httpd.confファイルの構文を確認します。
Windowsの場合
APACHE_HOME\bin> apachectl -t
UNIX/Linuxの場合
> APACHE_HOME/bin/apachectl -t
httpd.confファイルにエラーがある場合、このコマンドの実行結果としてエラーが出力され、それ以外の場合は次の結果が出力されます。
Syntax OK
Apache HTTP Serverを起動します。
Windowsの場合
APACHE_HOME\bin> httpd -k start
UNIX/Linuxの場合
> APACHE_HOME/bin/apachectl start
ブラウザからhttp://apache-host:apache-port/mywebapp/my.jspにリクエストを送信します。レスポンスを検証します。
IfModuleを使用しないように選択した場合、そのかわりに、WebLogicプロパティをLocationまたはVirtualHostブロック内に直接配置できます。LocationまたはVirtualHostブロックの次の例を考慮してください。
<Location /weblogic> SetHandler weblogic-handler WebLogicHost myweblogic.server.com WebLogicPort 7001 </Location> <Location /weblogic> SetHandler weblogic-handler WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001 </Location> <VirtualHost apachehost:80> SetHandler weblogic-handler WebLogicServer weblogic.server.com WebLogicPort 7001 </VirtualHost>
次の例は、ApacheプラグインがバックエンドWebLogic Serverにリクエストをプロキシするように迅速に設定するための基本的な手順を示しています。
${APACHE_HOME}/conf/httpd.confファイルのコピーを作成します。
ファイルを編集して次のコードをファイルに追加します。
... LoadModule weblogic_module /home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
<IfModule mod_weblogic.c>
WebLogicHost wls-host
WebLogicPort wls-port
Debug ALL
WLLogFile /tmp/wl-proxy.log
</IfModule>
<Location /mywebapp>
SetHandler weblogic-handler
</Location>
...
次のコマンドを実行して${PLUGIN_HOME}/lib isdをLD_LIBRARY_PATHにインクルードします。
$ export LD_LIBRARY_PATH=/home/myhome/weblogic-plugin-1.1/lib:...
|
注意: また、libの内容をAPACHE_HOME\libに追加するか、APACHE_HOME/bin/apachectlを編集してLD_LIBRARY_PATHを更新することにより、PATHを更新できます。 |
プロンプトに対し、次を入力してApacheサーバーを起動します:
$ ${APACHE_HOME}/bin/apachectl start
ブラウザからhttp://apache-host:apache-port/mywebapp/my.jspにリクエストを送信し、レスポンスを検証します。
別個の構成ファイルを複数用意する場合は、httpd.confファイルのIfModuleブロックのApache HTTP Server Includeディレクティブを使用して、weblogic.confという独立した構成ファイルでパラメータを定義できます。
<IfModule mod_weblogic.c> # Config file for WebLogic Server that defines the parameters Include conf/weblogic.conf </IfModule>
weblogic.confファイルの構文は、httpd.confファイルの構文と同じです。
この項では、weblogic.confファイルの作成方法を説明し、サンプルのweblogic.confファイルが含まれています。
weblogic.confファイルを作成する際には、次の点に注意してください。
パラメータはそれぞれ独立した行に入力します。パラメータとその値の間に"="を挿入しないでください。例:
PARAM_1 value1 PARAM_2 value2 PARAM_3 value3
IfModuleブロックのMatchExpressionで指定されたMIMEタイプとLocationブロックで指定されたパスの両方にリクエストが一致する場合は、Locationブロックで指定された動作が優先されます。
Apache HTTP Serverの<VirtualHost>ブロックを使用する場合は、<VirtualHost>ブロック(http://httpd.apache.org/docs/vhosts/のApache仮想ホスト・ドキュメントを参照)内の仮想ホストのすべての構成パラメータ(たとえば、MatchExpression)を含める必要があります。
環境内に構成されているすべての仮想ホストのログ・ファイルを1つのみにしたい場合は、グローバル・プロパティを使用すれば実現できます。各仮想ホストでDebug、WLLogFileおよびWLTempDirプロパティを指定するかわりに、<IfModule>タグで一度に指定できます。
httpd.confファイルのサンプル:
<IfModule mod_weblogic.c> WebLogicCluster johndoe02:8005,johndoe: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 WLLogFile c:/tmp/foo_proxy.log </Location>
/jurl/*に一致するすべてのリクエストではDebug LevelがALLに設定され、ログ・メッセージがc:/tmp/global_proxy.logファイルに記録されます。/web/*に一致するすべてのリクエストではDebug LevelがOFFに設定され、ログ・メッセージは記録されなくなります。/foo/*に一致するすべてのリクエストではDebug LevelがERRに設定され、ログ・メッセージはc:/tmp/foo_proxy.logファイルに記録されます。
<Files>ブロックではなくMatchExpression文を使用することをお薦めします。
次のweblogic.confファイルの例をテンプレートとして使用して、ユーザーの環境およびサーバーに合うように変更できます。#で始まる行はコメントです。
例4-1 Weblogicクラスタを使用した例
# These parameters are common for all URLs which are # directed to the current module. If you want to override # these parameters for each URL, you can set them again in # the <Location> or <Files> blocks. (Except WebLogicHost, # WebLogicPort, WebLogicCluster, and CookieName.) <IfModule mod_weblogic.c> WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001 ErrorPage http://myerrorpage.mydomain.com MatchExpression *.jsp </IfModule> ####################################################
例4-2で、ファイル名のパターン、HTTPリクエストのトランスポート先となるWebLogic Serverホストおよびその他のパラメータを表すMatchExpressionパラメータの構文は次のとおりです。
MatchExpression [filename pattern] [WebLogicHost=host] | [paramName=value]
最初のMatchExpressionパラメータではファイル名パターン*.jspを指定してから、1つのWebLogicHost名を指定しています。パイプ記号の後に続くparamName=valueの組合せでWebLogic Serverが接続リクエストをリスニングするポートを指定し、さらに「デバッグ」オプションを有効にするよう指定しています。2番目のMatchExpressionでは、ファイル名パターン*.httpを指定し、WebLogicClusterホストおよびそのポートを特定しています。パイプ記号の後に続くparamName=valueの組合せでは、クラスタのエラー・ページを指定しています。
例4-2 複数のWebLogicクラスタを使用した例
# These parameters are common for all URLs which are # directed to the current module. If you want to override # these parameters for each URL, you can set them again in # the <Location> or <Files> blocks (Except WebLogicHost, # WebLogicPort, WebLogicCluster, and 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>
例4-3に、WebLogicクラスタを使用しない例を示します。
例4-3 WebLogicクラスタを使用しない例
# These parameters are common for all URLs which are # directed to the current module. If you want to override # these parameters for each URL, you can set them again in # the <Location> or <Files> blocks (Except WebLogicHost, # WebLogicPort, WebLogicCluster, and CookieName.) <IfModule mod_weblogic.c> WebLogicHost myweblogic.server.com WebLogicPort 7001 MatchExpression *.jsp </IfModule>
例4-4に、複数の名前ベースの仮想ホストを構成する例を示します。
例4-4 複数の名前ベースの仮想ホストを構成する例
# VirtualHost1 = localhost:80 <VirtualHost 127.0.0.1:80> DocumentRoot "C:/test/VirtualHost1" ServerName localhost:80 <IfModule mod_weblogic.c> #... WLS parameter ... WebLogicCluster localhost:7101,localhost:7201 # Example: MatchExpression *.jsp <some additional parameter> 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 parameter ... WebLogicCluster localhost:7101,localhost:7201 # Example: MatchExpression *.jsp <some additional parameter> MatchExpression *.jsp PathPrepend=/test2 #... WLS parameter ... </IfModule> </VirtualHost>
ServerNameには一意の値を定義する必要があります。一意でない場合、一部のプラグイン・パラメータが意図したとおりに機能しません。
この項では、Apache 2.2のhttpd.confファイルのサンプルを紹介します。このサンプルをテンプレートとして使用し、ユーザーの環境およびサーバーに合うように変更できます。#で始まる行はコメントです。
Apache HTTP Serverでは大文字と小文字は区別されません。
例4-5 Apache 2.2用サンプルhttpd.confファイル
#################################################### APACHE-HOME/conf/httpd.conf file #################################################### LoadModule weblogic_module lhome/myhome/weblogic-plugins-1.1/lib/mod_wl.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>