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>