Oracle® Fusion Middleware Oracle WebLogic ServerにおけるWebサーバー1.1プラグインの使用 11g リリース1 (11.1.1) B61009-08 |
|
![]() 前 |
![]() 次 |
この章では、Apache HTTPサーバー・プラグインをインストールして構成する方法を説明します。次の項で構成されます。
注意: Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするためには、mod_wl_ohsプラグインを使用します。これはApache HTTPサーバー用のプラグインと似ていますが、別途ダウンロードしてインストールする必要はありません。mod_wl_ohsの構成の詳細は、第2章「Oracle HTTP Server用mod_wl_ohsプラグインの構成」を参照してください。 |
第1.2項「バージョン1.1プラグインの入手方法」の説明に従ってApache HTTPサーバー・プラグインをダウンロードした後、それをApache HTTPサーバー・モジュールとしてApache HTTPサーバーのインストール環境にインストールできます。
Apache HTTP Serverプラグインをインストールする前に、次のことを行ってください。
第1.2項「バージョン1.1プラグインの入手方法」の説明に従って、Apache HTTPサーバー・プラグインをダウンロードします。
プラグインのzipを解凍する場所(PLUGIN_HOME。たとえば、/home/myhome/weblogic-plugins-1.1/)
プラグインのzipディストリビューションをPLUGIN_HOME(たとえば、/home/myhome/weblogic-plugins-1.1/)に解凍します。このディストリビューションには、次のようなファイルが含まれています。
SSLを使用する場合は、JDK 7をインストールします。SSLで使用するためにウォレットや証明書失効リストなどの公開鍵インフラストラクチャ(PKI)要素を管理するorapki
ユーティリティを使用するには、JDK 7のインストールが必要です。
サポートされているApache HTTPサーバーのインストール環境があることを確認します。
注意: Apache HTTP Server 2.4を使用する場合は、12.1.xプラグインにアップグレードしてください。 |
詳細は、次を参照してください。
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プラグインは共有オブジェクト(.so)ファイルとして配布されます。
Apache HTTPサーバー・プラグインをインストールするには:
weblogic-plugins-1.1/lib
フォルダがUNIXシステム上のLD_LIBRARY_PATH
(およびWindowsシステム上のPATH)に含まれていることを確認します。含まれていない場合は、Apache HTTPサーバーの起動時にリンケージ・エラーが表示されます。
ダウンロードしたプラグイン・ファイルを解凍した場所で、lib/mod_wl.so
を見つけます(たとえば、/home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
)。
mod_so.c
モジュールが有効になっていることを確認します。
Apacheで提供されるスクリプトを使用してApache HTTPサーバーをインストールした場合、mod_so.c
はすでに有効になっています。UNIX/Linuxプラットフォームで次のコマンドを実行して、mod_so.c
が有効になっていることを確認します。
APACHE_HOME/bin/apachectl -l
(APACHE_HOME
は、Apache HTTPサーバーのインストールが含まれているディレクトリです。)
注意: apachectl コマンドはWindowsプラットフォームでは使用できません。 |
このコマンドによって、有効なすべてのモジュールがリスト表示されます。mod_so.c
がリストにない場合は、Apache HTTPサーバーを再構築し、次の構成オプションが指定されていることを確認します。
... --enable-module=so ...
バックアップとして、 APACHE_HOME
/bin/httpd.conf
ファイルのコピーを作成します。
httpd.conf
ファイルを開きます。
Apache 2.2.x用のApache HTTPサーバー・プラグイン・モジュールをインストールするには、次の行を追加します。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サーバー・インストールのhttpd.conf
ファイルを編集し、Apache HTTPサーバー・プラグインを構成します。
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サーバー・プラグイン・モジュールのハンドラを指定します。たとえば、次の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プロトコルおよびweblogic.jar
のHTTPトンネリングを有効にして、次のLocation
ブロックをhttpd.conf
ファイルに追加します。
<Location /bea_wls_internal/HTTPClnt> SetHandler weblogic-handler </Location>
Apache HTTPサーバー・プラグインの追加パラメータを定義します。
Apache HTTPサーバー・プラグインは、第7.1項「Webサーバー・プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTPサーバー・プラグインの動作を修正するには、次のいずれかのパラメータを定義します。
Location
ブロック(パスによるプロキシに適用されるパラメータの場合)、または
MIMEタイプによるプロキシに適用するパラメータの場合、グローバルまたは仮想ホスト・スコープ
次のコマンドをUNIX/Linuxプラットフォームで実行してhttpd.conf
ファイルの構文を検証します。
> APACHE_HOME/bin/apachectl -t
注意: apachectl コマンドはWindowsプラットフォームでは使用できません。 |
httpd.conf
ファイルにエラーがある場合はこのコマンドの出力でエラーが表示され、それ以外の場合は次のような結果が戻されます。
Syntax OK
Apache HTTPサーバーを起動します。
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>
次の例では、バックエンドWebLogic ServerにリクエストをプロキシするようApacheプラグインを簡潔に設定するための基本的な手順を示します。
${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> ...
次のコマンドを入力して、LD_LIBRARY_PATHに${PLUGIN_HOME}/libを組み込みます。
$ 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にリクエストを送信し、レスポンスを確認します。
別個の構成ファイルを複数保持する場合は、次のようにApache HTTPサーバーのInclude
ディレクティブをhttpd.confファイルのIfModule
ブロック内で使用することで、httpd.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サーバーの<VirtualHost>
ブロックを使用する場合は、<VirtualHost>
ブロック内に仮想ホストのすべての構成パラメータ(MatchExpression
など)を含める必要があります(http://httpd.apache.org/docs/vhosts/
のApache仮想ホストに関するドキュメントを参照)。
環境内に構成されているすべての仮想ホストのログ・ファイルを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
では、ファイル名パターン*.htmlを指定し、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サーバーでは大文字と小文字が区別されない点に注意してください。
例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>