Oracle® Fusion Middleware Oracle WebLogic Serverプロキシ・プラグイン12.1.2の使用 12c (12.1.2) E47983-03 |
|
前 |
次 |
この章では、Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインをインストールおよび構成する方法について説明します。内容は以下のとおりです。
注意: Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするには、mod_wl_ohsプラグインを使用します。このプラグインはApache HTTP Server用のプラグインと似ていますが、別途ダウンロードしてインストールする必要はありません。mod_wl_ohsを構成する方法は、第2章「Oracle HTTP Server用WebLogicプロキシ・プラグインの構成」を参照してください。 |
Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインは、Apache Webサーバーでサポートされており、WebSocketアプリケーションのフロントエンドとなることができます。このサポートは、次の場所にある動作保証マトリックスで説明されています。
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html
このURLは、動作保証セントラル・ページを指しているため、ご使用のWebサーバー・バージョンに基づいて該当するモジュールをコピーする必要があります。WLSプラグイン用の動作保証を取得するには、ご使用のFMW/WLSバージョン(12.1.2.0など)関連のリストからスプレッドシート・ドキュメントを選択してから、Webサーバー・タブを開きます。
第1.2項「WLS Webサーバー・プロキシ・プラグイン12.1.2の入手」の説明に従ってApache HTTP Server用WLS Webサーバー・プロキシ・プラグインをダウンロードした後、Apache HTTP ServerにApache HTTP Serverモジュールとしてインストールできます。
Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインをインストールする前に、次のことを行います。
第1.2項「WLS Webサーバー・プロキシ・プラグイン12.1.2の入手」の説明に従って、Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインをダウンロードします。
プラグインzipを展開する場所(PLUGIN_HOME、たとえば、/home/myhome/weblogic-plugins-12.1.2/)
プラグインzip配布をPLUGIN_HOME(たとえば、/home/myhome/weblogic-plugins-12.1.2/)に展開します。この配布には次のファイルが含まれています:
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用WLS Webサーバー・プロキシ・プラグインは、UNIXプラットフォーム用の共有オブジェクト(.so)およびWindows用のDLLとして配布されます。プラグインはここから入手できます。
Apache HTTP Serverプラグインをインストールするには:
weblogic-plugins-12.1.2/libフォルダがUNIXシステム上のLD_LIBRARY_PATH(およびWindowsシステム上のPATH)に含まれていることを確認します。含まれていない場合、Apache HTTP Serverの開始中にリンケージ・エラーが発生します。
ダウンロードしたプラグイン・ファイルを解凍した場所でlib/mod_wl.so (Windowsの場合はlib\mod_wl.dll)を見つけます。例: /home/myhome/weblogic-plugins-12.1.2/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-12.1.2/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 DebugConfigInfo ON </IfModule>
MIMEタイプによってリクエストをプロキシするには、MatchExpression行を<IfModule>
ブロックに追加します。MIMEタイプおよびパスによるプロキシの両方を有効にした場合、パスによるプロキシがMIMEタイプによるプロキシに優先することに注意してください。
たとえば、クラスタ化されていないWebLogic Serverに対する次の<IfModule>
ブロックでは、MIMEタイプが.jspであるすべてのファイルがプロキシされます。
<IfModule mod_weblogic.c> WebLogicHost my-weblogic.server.com WebLogicPort 7001 MatchExpression *.jsp DebugConfigInfo ON </IfModule>
次のように、複数のMatchExpressionを使用することもできます。
<IfModule mod_weblogic.c> WebLogicHost my-weblogic.server.com WebLogicPort 7001 MatchExpression *.jsp MatchExpression *.xyz DebugConfigInfo ON </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用WLS Webサーバー・プロキシ・プラグイン・モジュールのハンドラを指定します。たとえば、次のLocation
ブロックでは、URLに/weblogicが含まれるすべてのリクエストがプロキシされます。
<
Location /weblogic>
WLSRequest On
PathTrim /weblogic
</Location>
PathTrimパラメータには、WebLogic Serverインスタンスにリクエストを渡す前にURLの先頭から削除する文字列を指定します(第7.1項「Webサーバー・プラグインの一般的なパラメータ」を参照してください)。
PathTrimパラメータは<Location>
タグの中で構成する必要があります。SSLを使用するためにApache HTTP Server用WLS Webサーバー・プロキシ・プラグインを構成する際に、次の既知の問題が発生します。
次の構成は正しくありません:
<Location /weblogic> WLSRequest On </Location> <IfModule mod_weblogic.c> WebLogicHost localhost WebLogicPort 7001 PathTrim /weblogic </IfModule>
次の構成は正しい設定です。
<Location /weblogic> WLSRequest On PathTrim /weblogic </Location>
Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインの現在の実装では、Apache SSLに関して複数の証明書ファイルの使用はサポートされていません。
必要に応じて、t3またはIIOPのHTTPトンネリングを有効にします。
t3プロトコルおよびweblogic.jarを使用する場合にHTTPトンネリングを有効にするには、次の<Location>
ブロックをhttpd.confファイルに追加します。
<Location /bea_wls_internal/HTTPClnt> WLSRequest On </Location>
IIOP (WebLogic Serverシン・クライアントのwlclient.jarで使用される唯一のプロトコル)を使用する場合にHTTPトンネリングを有効にするには、次のLocation
ブロックをhttpd.confファイルに追加します。
<Location /bea_wls_internal/iiop> WLSRequest On </Location>
Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインの追加パラメータを定義します。
Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインは、第7.1項「Webサーバー・プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTP Server用WLS Webサーバー・プロキシ・プラグインの動作を変更するには、次のいずれかでパラメータを定義します。
<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> WLSRequest On WebLogicHost myweblogic.server.com WebLogicPort 7001 </Location> <Location /weblogic> WLSRequest On WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001 </Location> <VirtualHost apachehost:80> WLSRequest On WebLogicServer weblogic.server.com WebLogicPort 7001 </VirtualHost>
次の例は、ApacheプラグインがバックエンドWebLogic Serverにリクエストをプロキシするように迅速に設定するための基本的な手順を示しています。
${APACHE_HOME}/conf/httpd.confファイルのコピーを作成します。
ファイルを編集して次のコードをファイルに追加します。
... LoadModule weblogic_module /home/myhome/weblogic-plugins-12.1.2/lib/mod_wl.so <IfModule mod_weblogic.c> WebLogicHost wls-host WebLogicPort wls-port </IfModule> <Location /mywebapp> WLSRequest On </Location> ...
次のコマンドを実行して、${PLUGIN_HOME}/lib isdをLD_LIBRARY_PATHにインクルードします。
$ export LD_LIBRARY_PATH=/home/myhome/weblogic-plugin-12.1.2/lib:...
注意: また、libの内容をAPACHE_HOME\libにコピーするか、APACHE_HOME/bin/apachectlを編集してLD_LIBRARY_PATHを更新することにより、PATHを更新できます。 |
プロンプトに対し、次を入力してApache HTTP Serverを起動します。
$ ${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
)を含める必要があります。
httpd.confファイルのサンプルを次に示します。
<IfModule mod_weblogic.c> WebLogicCluster johndoe02:8005,johndoe:8006 WLTempDir "c:\myTemp" DebugConfigInfo ON KeepAliveEnabled ON KeepAliveSecs 15 </IfModule> <Location /jurl> WLSRequest On WebLogicCluster agarwalp01:7001 WLTempDir "c:\jurl </Location> <Location /web> WLSRequest On PathTrim/web WebLogicHost myhost WebLogicPort 8001 WLTempDir "c:\web" </Location> <Location /foo> WLSRequest On WebLogicHost myhost02 WebLogicPort 8090 WLTempDir "c:\foo" PathTrim/foo </Location>
/jurl/*と一致するすべてのリクエストは、c:\jurlにPOSTデータ・ファイルがあり、agarwalp01およびポート7001にリクエストをリバース・プロキシします。/web/*と一致するすべてのリクエストは、c:\webにPOSTデータ・ファイルがあり、myhostおよびポート8001にリクエストをリバース・プロキシします。/foo/*と一致するすべてのリクエストは、c:\fooにPOSTデータ・ファイルが書き込まれ、myhost02およびポート8090にリクエストをリバース・プロキシします。
<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を指定し、WebLogicクラスタ・ホストおよびそのポートを特定しています。パイプ記号の後に続く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-12.1.2/lib/mod_wl.so <Location /weblogic> WLSRequest On PathTrim /weblogic ErrorPage http://myerrorpage1.mydomain.com </Location> <Location /servletimages> WLSRequest On 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>
WebLogic Serverプラグイン・ログは、現在Apache HTTP Serverエラー・ログの一部であり、簡単に識別できるように接頭辞weblogic:
が付けられています。そのため、ディレクティブWLLogFileとDebugは非推奨になりました。構成でこれらのディレクティブがまだ使用されている場合、次の注意が起動時に表示されます。
The WLLogFile directive is ignored. The web server log file is used instead.The Debug directive is ignored. The web server log level is used instead.
プラグイン・ログを有効にするには、LogLevelをdebugに設定します。これらのログは、ErrorLogが示すファイルに含められます。