Oracle® Fusion Middleware Oracle WebLogic ServerにおけるWebサーバー1.1プラグインの使い方 11g リリース1(10.3.5) B61009-03 |
|
前 |
次 |
次の項では、Apache HTTP Serverプラグインをインストールして構成する方法を説明します。
注意: Oracle WebLogic Serverのこのリリースでは、単一のプラグインがApache HTTP ServerおよびOracle HTTP Serverの両方をサポートしています。 |
「バージョン1.1プラグインのダウンロード」の説明に従ってApache HTTP Serverプラグインをダウンロードした後、Apache HTTP ServerにApacheモジュールとしてインストールでき、動的共有オブジェクト(DSO)としてリンクできます。
DSOは、実行時にサーバーに動的にロードされるライブラリとしてコンパイルされ、Apacheを再コンパイルせずにインストールできます。
Apache HTTP Serverプラグインをインストールする前に、次の前提条件を満たす必要があります。
「バージョン1.1プラグインのダウンロード」の説明に従って、Apache HTTP Serverプラグインをダウンロードします。
ターゲット・システム上の選択した場所にプラグインのzip配布を展開します。たとえば、/home/myhome/weblogic-plugins-1.1/
です。
SSLを使用する場合、JDK 6をインストールします。orapkiユーティリティを使用するには、JDK 6インストールが必要です。orapkiユーティリティは、SSLとの使用のためにウォレットや証明書失効リストなどの公開鍵認証基盤(PKI)要素を管理します。
サポートされているApache HTTP Serverインストールが存在します。
http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
に記載されているApacheプラットフォームでバージョン1.1プラグインがサポートされています。
サポートされているバージョンのWebLogic Serverが構成済みで、ターゲット・システムで実行されています。ただし、それがプラグインのzip配布を展開したシステム上で実行されている必要はありません。サポートされているWebLogic Serverのバージョンは、http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
を参照してください。
Apacheプラグインは、UNIXプラットフォーム用の共有オブジェクト(.so)およびWindows用のDLLとして配布されます。
Apache HTTP Serverプラグインを動的共有オブジェクトとしてインストールするには:
weblogic-plugins-1.1/lib
フォルダが、UNIXシステム上のLD_LIBRARY_PATH
(およびWindowsシステム上のPATH)に含まれていることを確認します。含まれていない場合、Apacheの開始中にリンケージ・エラーが発生します。
Windowsの場合、ダウンロードしたプラグイン・ファイルを解凍した場所でlib/mod_wl.so
またはlib\mod_wl.dll
を見つけます。たとえば、/home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
です。
mod_so.c
モジュールが有効であることを確認します。
Apache HTTP Serverプラグインは、Apache HTTP Serverインストールに動的共有オブジェクト(DSO)としてインストールされます。
ApacheのDSOサポートは、mod_wl.so
をロードする前に有効にする必要のあるモジュールmod_so.c
に基づいています。
Apacheによって提供されるApache HTTP Serverをインストールした場合、mod_so.c
はすでに有効化されています。次のコマンドを実行して、mod_so.cが有効化されていることを確認してください。
APACHE_HOME\bin\apachectl -l
(APACHE_HOME
は、Apache HTTP Serverをインストールしたディレクトリです。)
このコマンドは、有効なすべてのモジュールのリストを表示します。mod_so.c
がリストにない場合は、Apache HTTP Serverを再構築して次のオプションが構成されるようにする必要があります。
... --enable-module=so --enable-rule=SHARED_CORE ...
「http://httpd.apache.org/docs/2.2/dso.html」
にある「Apache 2.2 Shared Object (DSO) Support」を参照してください。
バックアップとして${APACHE_HOME
}/bin/httpd.conf
ファイルのコピーを作成します。
httpd.conf
ファイルを開きます。
ファイルは、APACHE_HOME/conf/httpd.conf
にあります。(ここで、APACHE_HOME
は、Apache HTTP Serverインストールのルート・ディレクトリを示します。)「Apache HTTP Serverプラグインの構成」のサンプルhttpd.conf
ファイルを参照してください。
APACHE_HOME/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
次のコマンドで、APACHE_HOME/conf/httpd.conf
ファイルの構文を検証します。
APACHE_HOME\bin\apachectl -t
(APACHE_HOME
は、Apache HTTP Serverをインストールしたディレクトリです。)
このコマンドの出力では、httpd.conf
ファイルのエラーが示されるか、次が返されます。
Syntax OK
Apache HTTP Serverにプラグインをインストールしたら、WebLogic Server Apacheプラグインの構成と、プラグインを使用するためのサーバーの構成を行います。
この項では、HTTPトンネリングを有効にし、WebLogic Serverの他のプラグイン・パラメータを使用するために、httpd.conf
ファイルを編集してパスまたはMIMEタイプによりリクエストをプロキシする方法について説明します。
Apache HTTP Serverインストールのhttpd.conf
ファイルを編集し、Apache HTTP Serverプラグインを構成します。
バックアップとして${APACHE_HOME
}/bin/httpd.conf
ファイルのコピーを作成します。
httpd.conf
ファイルを開きます。
ファイルは、APACHE_HOME/conf/httpd.conf
にあります。(ここで、APACHE_HOME
は、Apache HTTP Serverインストールのルート・ディレクトリを示します。)「Apache HTTP Serverプラグインの構成」のサンプルhttpd.conf
ファイルを参照してください。
WebLogic ServerモジュールがApache 2.2.xに含まれていることを確認します。まだ含まれていない場合は、httpd.conf
ファイルに次の行を追加します。Windowsの場合は、DLLファイルを指定します。
LoadModule weblogic_module /home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
MIMEタイプによってリクエストをプロキシするには、次のいずれかを定義するIfModule
ブロックを追加します。
クラスタリングされていないWebLogic Serverの場合: WebLogicHost
およびWebLogicPort
パラメータ。
WebLogic Serverのクラスタの場合: WebLogicCluster
パラメータ。
例:
<IfModule mod_weblogic.c> WebLogicHost my-weblogic-server-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の先頭から切り取る文字列を指定します(「Webサーバー・プラグインの一般的なパラメータ」を参照)。
必要に応じて、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プラグインは、「Webサーバー・プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTP Serverプラグインの動作を変更するには、次のいずれかでパラメータを定義します。
Location
ブロック(パスによるプロキシに適用されるパラメータの場合)、または
IfModule
ブロック(MIMEタイプによるプロキシに適用されるパラメータの場合)。
次のコマンドで、APACHE_HOME\conf\httpd.conf
ファイルの構文を検証します。
APACHE_HOME\bin\apachectl -t
(APACHE_HOME
は、Apache HTTP Serverをインストールしたディレクトリです。)
このコマンドの出力では、httpd.conf
ファイルのエラーが示されるか、次が返されます。
Syntax OK
Apache HTTP Serverを起動します。
${APACHE_HOME}/bin/apachectl start
(APACHE_HOME
は、Apache HTTP Serverをインストールしたディレクトリです。)
ブラウザから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>
別個の構成ファイルを複数用意する場合は、httpd.conf
ファイルのIfModule
ブロックのApache 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
ファイルの例をテンプレートとして使用して、ユーザーの環境およびサーバーに合うように変更できます。#で始まる行はコメントです。
例3-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> ####################################################
例3-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
の組合せでは、クラスタのエラー・ページを指定しています。
例3-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>
例3-3に、WebLogicクラスタを使用しない例を示します。
例3-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>
例3-4に、複数の名前ベースの仮想ホストを構成する例を示します。
例3-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では大文字と小文字は区別されません。
例3-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>