Oracle® Fusion Middleware Oracle WebLogic Serverプロキシ・プラグインの使用 12c (12.1.3) E56226-05 |
|
前 |
次 |
この章では、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをインストールして構成する方法を説明します。次の項で構成されます。
注意: Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするためには、mod_wl_ohsプラグインを使用します。これはApache HTTPサーバー用のプラグインと似ていますが、別途ダウンロードしてインストールする必要はありません。mod_wl_ohsの構成の詳細は、第2章「Oracle HTTP Server用プロキシ・プラグインの構成」を参照してください。 |
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインは、Apache 2.2および2.4のWebサーバーでサポートされており、WebSocketアプリケーションのフロントエンドとなることができます。
第1.2項「Oracle WebLogic Serverプロキシ・プラグイン12.1.3の入手方法」の説明に従ってApache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをダウンロードした後、それをApache HTTP ServerモジュールとしてApache HTTP Serverのインストール環境にインストールできます。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをインストールする前に、次のことを行ってください。
第1.2項「Oracle WebLogic Serverプロキシ・プラグイン12.1.3の入手方法」の説明に従って、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをダウンロードします。
プラグインのzipディストリビューションをPLUGIN_HOME(たとえば、/home/myhome/weblogic-plugins-12.1.3/
)に解凍します。これは、プラグインの解凍先となるディレクトリです。
このディストリビューションには、次のようなファイルが含まれています。
SSLを使用するためにJDKをインストールします。SSLで使用するためにウォレットや証明書失効リストなどの公開鍵インフラストラクチャ(PKI)要素を管理するorapkiユーティリティを使用するには、JDK 6のインストールが必要です。
サポートされているApache HTTPサーバーのインストール環境があることを確認します。
詳細は、次を参照してください。
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html
注意: Apache HTTP Server 2.4を使用する場合は、12.1.xプラグインにアップグレードしてください。 |
サポートされているバージョンのOracle WebLogic Serverが構成済であり、ターゲット・システム上で実行されていることを確認します。このサーバーはプラグインのzipディストリビューションを解凍したシステム上で実行する必要はありません。サポートされているOracle WebLogic Serverのバージョンについては、次を参照してください。
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインは、共有オブジェクト(.so)として配布されます。プラグインは、次のサイトから入手できます。
http://www.oracle.com/technetwork/middleware/webtier/overview/index.html
Apache HTTPサーバー・プラグインをインストールするには:
weblogic-plugins-12.1.3/lib
フォルダがUNIXシステム上のLD_LIBRARY_PATH
(およびWindowsシステム上のPATH
)に含まれていることを確認します。このフォルダが含まれていない場合、Apache HTTP Serverの起動時にリンケージ・エラーが発生します。
ダウンロードしたプラグイン・ファイルを解凍した場所で、lib/mod_wl.so
を見つけます(たとえば、/home/myhome/weblogic-plugins-12.1.3/lib/mod_wl.so
)。
mod_so.c
モジュールが有効になっていることを確認します。
Apacheで提供されるスクリプトを使用してApache HTTPサーバーをインストールした場合、mod_so.c
はすでに有効になっています。次のコマンドを実行して、mod_so.c
が有効であることを確認します。
UNIX/Linux
APACHE_HOME/bin/apachectl -l
(APACHE_HOMEは、Apache HTTPサーバーのインストールが含まれているディレクトリです。)
このコマンドによって、有効なすべてのモジュールがリスト表示されます。mod_so.cがリストにない場合は、Apache HTTPサーバーを再構築し、次の構成オプションが指定されていることを確認します。
... --enable-module=so ...
バックアップとして、APACHE_HOME/bin/httpd.confファイルのコピーを作成します。
httpd.conf
ファイルを開きます。
Apacheのバージョンに応じて次のどちらかのコマンドを使用し、プラグインをインストールします。
Apache 2.2.x用のApache HTTPサーバー・プラグイン・モジュールをインストールするには、次の行を追加します。
LoadModule weblogic_module /home/myhome/weblogic-plugins-12.1.3/lib/mod_wl.so
Apache 2.4.x用のApache HTTPサーバー・プラグイン・モジュールをインストールするには、次の行を追加します。
LoadModule weblogic_module /home/myhome/weblogic-plugins-12.1.3/lib/mod_wl_24.so
次のコマンドを実行して、httpd.conf
ファイルの構文を確認します。
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 DebugConfigInfo ON </IfModule>
MIMEタイプによってリクエストをプロキシするには、<IfModule>
ブロックにMatchExpression行を追加します。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>
ブロックおよびWLSRequest
文を使用します。WLSRequest
によって、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグイン・モジュールのためのハンドラを指定します。たとえば、次のLocation
ブロックでは、URLに/weblogicが含まれるすべてのリクエストがプロキシされます。
<
Location /weblogic>
WLSRequest On
PathTrim /weblogic
</Location>
PathTrimパラメータには、WebLogic Serverインスタンスにリクエストを渡す前にURLの先頭から削除する文字列を指定します(第7.1項「Webサーバー・プラグインの一般パラメータ」を参照)。
PathTrimパラメータは、<Location>
タグ内で構成する必要がありますSSLを使用するようApache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインを構成する際には、次のような既知の問題が発生します
次の構成は正しくありません。
<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用Oracle WebLogic Serverプロキシ・プラグインの現行の実装では、Apache SSLでの複数の証明書ファイルの使用はサポートされていません。
必要に応じて、t3またはIIOPのHTTPトンネリングを有効にします。
t3プロトコルおよびweblogic.jarを使用している場合にHTTPトンネリングを有効にするには、次の<Location>
ブロックをhttpd.confファイルに追加します。
<Location /bea_wls_internal> WLSRequest On </Location>
IIOP (WebLogic Serverシン・クライアントのwlclient.jarによって使用される唯一のプロトコル)を使用する場合にHTTPトンネリングを有効にするには、次のLocation
ブロックをhttpd.confファイルに追加します。
<Location /bea_wls_internal> WLSRequest On </Location>
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインのためのその他のパラメータを定義します。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインでは、第7.1項「Webサーバー・プラグインの一般パラメータ」でリストされているパラメータが認識されます。Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインの動作を変更するには、次のどちらかでパラメータを定義します。
パスによるプロキシに適用するパラメータの場合、<Location>
ブロック
MIMEタイプによるプロキシに適用するパラメータの場合、グローバルまたは仮想ホスト・スコープ
次のコマンドを実行して、httpd.confファイルの構文を確認します。
UNIX/Linux
> APACHE_HOME/bin/apachectl -t
httpd.confファイルにエラーがある場合はこのコマンドの出力でエラーが表示され、それ以外の場合は次のような結果が戻されます。
Syntax OK
Apache HTTPサーバーを起動します。
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>
次の例では、バックエンドWebLogic ServerにリクエストをプロキシするようApacheプラグインを簡潔に設定するための基本的な手順を示します。
${APACHE_HOME}/conf/httpd.confファイルのコピーを作成します。
ファイルを編集し、次のコードを追加します。
... LoadModule weblogic_module /home/myhome/weblogic-plugins-12.1.3/lib/mod_wl.so <IfModule mod_weblogic.c> WebLogicHost wls-host WebLogicPort wls-port </IfModule> <Location /mywebapp> WLSRequest On </Location> ...
次のコマンドを実行して、${PLUGIN_HOME}/libをLD_LIBRARY_PATHに含めます。
$ export LD_LIBRARY_PATH=/home/myhome/weblogic-plugin-12.1.3/lib:...
注意: libの内容をAPACHE_HOME\libにコピーするか、APACHE_HOME/bin/apachectlを編集してLD_LIBRARY_PATHを更新してもPATHを更新できます。 |
プロンプトで、次のコマンドを入力してApache HTTPサーバーを起動します。
$ ${APACHE_HOME}/bin/apachectl start
ブラウザからhttp://apache-host:apache-port/mywebapp/my.jsp
にリクエストを送信し、レスポンスを確認します。
別個の構成ファイルを複数保持する場合は、次のようにApache HTTPサーバーのInclude
ディレクティブをhttpd.confファイルの<IfModule>
ブロック内で使用することで、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サーバーの<VirtualHost>
ブロックを使用する場合は、<VirtualHost>
ブロック内に仮想ホストのすべての構成パラメータ(MatchExpression
など)を含める必要があります(http://httpd.apache.org/docs/vhosts/
のApache仮想ホストに関するドキュメントを参照)。
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/*に一致するすべてのリクエストは、POSTデータ・ファイルがc:\jurl内にあり、agarwalp01およびポート7001にリバース・プロキシされます。/web/*に一致するすべてのリクエストは、POSTデータ・ファイルがc:\web内にあり、myhostおよびポート8001にリバース・プロキシされます。/foo/*に一致するすべてのリクエストは、POSTデータ・ファイルがc:\fooに書き込まれ、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
では、ファイル名のパターン*.htmlを指定し、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 HTTPサーバーのhttpd.confファイルのサンプルが記載されています。このサンプルをテンプレートとして使用し、ご使用の環境およびサーバーに合せて変更できます。#で始まる行はコメントです。
Apache HTTPサーバーでは大文字と小文字が区別されません。
例3-5 Apache HTTPサーバーのhttpd.confファイルのサンプル
#################################################### APACHE-HOME/conf/httpd.conf file #################################################### LoadModule weblogic_module lhome/myhome/weblogic-plugins-12.1.3/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サーバーのエラー・ログの一部となっており、簡単に識別できるように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で指定されているファイルに含まれます。