Oracle® Fusion Middleware Oracle WebLogic Serverプロキシ・プラグイン12.2.1の使用 12c (12.2.1) E69935-01 |
|
前 |
次 |
この章では、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プロキシ・プラグイン12c (12.2.1)の入手方法」の説明に従ってApache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをダウンロードした後、それをApache HTTP ServerモジュールとしてApache HTTP Serverのインストール環境にインストールできます。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをインストールする前に、次のインストールと検証のタスクを行います。
第1.2項「Oracle WebLogic Serverプロキシ・プラグイン12c (12.2.1)の入手方法」の説明に従って、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをダウンロードします。
プラグインのzipディストリビューションをPLUGIN_HOME (たとえば、/home/myhome/weblogic-plugins-12.2.1/)に解凍します。これは、プラグインの解凍先となるディレクトリです。
このディストリビューションには、次のようなファイルが含まれています。
SSLを使用するためにJDK 8をインストールします。SSLで使用するためにウォレットや証明書失効リストなどの公開鍵インフラストラクチャ(PKI)要素を管理するorapkiユーティリティを使用するには、JDK 8のインストールが必要です。
サポートされているApache HTTPサーバーのインストール環境があることを確認します。
詳細は、次を参照してください。
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html
サポートされているバージョンの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.2.1/libフォルダがUNIXシステム上のLD_LIBRARY_PATH (およびWindowsシステム上のPATH)に含まれていることを確認します。含まれていない場合は、Apache HTTP Serverの起動時にリンケージ・エラーが表示されます。
ダウンロードしたプラグイン・ファイルを解凍した場所で、lib/mod_wl.soを見つけます(たとえば、/home/myhome/weblogic-plugins-12.2.1/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.2.1/lib/mod_wl.so
Apache 2.4.x用のApache HTTPサーバー・プラグイン・モジュールをインストールするには、次の行を追加します。
LoadModule weblogic_module /home/myhome/weblogic-plugins-12.2.1/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サーバー・プラグインを構成します。次のタスクを完了します。
リクエストは、MIMEタイプまたはパス、あるいはその両方によってプロキシできます。テキスト・エディタでhttpd.confファイルを開きます。
注意: MIMEタイプおよびパスによるプロキシの両方を有効にした場合は、パスによるプロキシがMIMEタイプによるプロキシより優先されます。 |
次の手順に従い、httpd.confファイルでMIMEタイプによるMIMEリクエストを構成します。
次のいずれかを定義する<IfModule>
ブロックを追加します。
クラスタ化されていないWebLogic Serverの場合: WebLogicHostパラメータとWebLogicPortパラメータを定義します。
WebLogic Serverのクラスタの場合: WebLogicClusterパラメータを定義します。
例:
<IfModule mod_weblogic.c> WebLogicHost myweblogic.example.com WebLogicPort 7001 DebugConfigInfo ON </IfModule>
<IfModule>
ブロックにMatchExpression行を追加します。
たとえば、クラスタ化されていない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>
次の手順に従い、httpd.confファイルでパスによるMIMEリクエストを構成します。
パスによるMIMEリクエストを構成するには、<Location>
ブロックおよびWLSRequest
文を使用します。WLSRequest
によって、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグイン・モジュールのためのハンドラを指定します。たとえば、次のLocation
ブロックでは、URLに/weblogicが含まれるすべてのリクエストがプロキシされます。
<
Location /weblogic>
WLSRequest On
PathTrim /weblogic
</Location>
PathTrimパラメータは、<Location>
タグ内で構成します。
PathTrimパラメータには、WebLogic Serverインスタンスにリクエストを渡す前にURLの先頭から削除する文字列を指定します(第8.1項「Webサーバー・プラグインの一般パラメータ」を参照)。
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での複数の証明書ファイルの使用はサポートされていません。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインのためのその他のパラメータを定義します。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインでは、第8.1項「Webサーバー・プラグインの一般パラメータ」でリストされているパラメータが認識されます。Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインの動作を変更するには、次のどちらかでパラメータを定義します。
パスによるプロキシに適用するパラメータの場合、<Location>
ブロック
MIMEタイプによるプロキシに適用するパラメータの場合、グローバルまたは仮想ホスト・スコープ
t3プロトコルまたはIIOPプロトコルのHTTPトンネリングを有効にするには、<Location>
ブロックを構成します。
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>
次の手順に従い、httpd.conf構成を検証してApache HTTP Serverに適用します。
次のコマンドを実行して、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.2.1/lib/mod_wl.so <IfModule mod_weblogic.c> WebLogicHost wls-host WebLogicPort wls-port </IfModule> <Location /mywebapp> WLSRequest On </Location> ...
次のコマンドを入力して、LD_LIBRARY_PATHに${PLUGIN_HOME}/libを組み込みます。
$ export LD_LIBRARY_PATH=/home/myhome/weblogic-plugin-12.2.1/lib:...
注意: 'lib 'の内容をAPACHE_HOME/lib にコピーするか、APACHE_HOME/bin/apachectl を編集してLD_LIBRARY_PATH を更新してもLD_LIBRARY_PATH を更新できます。 |
プロンプトで、次のコマンドを入力してApache HTTPサーバーを起動します。
$ ${APACHE_HOME}/bin/apachectl start
ブラウザからhttp://apache-host:apache-port/mywebapp/my.jsp
にリクエストを送信し、レスポンスを確認します。
別個の構成ファイルを複数保持する場合は、次のようにApache HTTP Serverの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 myCluster: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 /home/myhome/weblogic-plugins-12.2.1/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>
Apache HTTP ServerのDMSパフォーマンス・メトリックを構成して表示できます。Apache HTTPサーバーには、Oracle WebLogic Serverと同じDMSメトリックのセットが用意されています。
返されるDMSメトリックについては、第2.5.3項「DMS状態メトリック」、第2.5.4項「DMSイベント・メトリック」および第2.5.5項「DMS PhaseEventメトリック」で説明しています。
この項の内容は次のとおりです。
Apache HTTP ServerのDMSメトリックを構成するには、httpd.conf
ファイルに次のコードを追加します。
# Add the following LoadModule only if it is not already present # Use mod_wl.so for Apache httpd 2.2LoadModule weblogic_module $PLUGIN_HOME/mod_wl_24.so
<Location /metrics>
SetHandler dms-handler
</Location>
生のメトリックは、次のURLを使用して表示できます。
http://
apachehost:apacheport
/metrics
ここで、apachehost
は、Apacheサーバーのホスト名、apacheport
はポート番号になります。
Oracle WebLogic Serverプラグインから生じるメトリックは、セクション/WebLogicProxy [type=OHSWebLogic]
にあります。
WebLogic Serverプラグイン・ログは、現在はApache HTTP Serverのエラー・ログの一部となっています。簡単に識別できるよう、次の例のように先頭にweblogic:
というリファレンスが付いています。
Apache 2.4の例:
[Thu May 14 23:15:05.160459 2015] [weblogic:debug] [pid 6571:tid 139894556022528] ApacheProxy.cpp(875): [client 10.184.61.77:53634] <657114316705052> ================New Request: [GET /weblogic/index.html HTTP/1.1] =================
Apache 2.2の例:
[Thu Apr 16 04:15:37 2015] [debug] ApacheProxy.cpp(873): [client 10.184.61.77] <2157714291829372> weblogic: ================New Request: [GET /weblogic/index.html HTTP/1.1] =================
ディレクティブWLLogFileおよびDebugは非推奨です。構成でこれらのディレクティブが使用されている場合は、起動時に次のような注意が表示されます。
[Thu May 14 23:22:19 2015] [warn] weblogic: The Debug directive is ignored. The web server log level is used instead.
プラグインのログを有効にするには、LogLevelをdebug
に設定します。これらのログは、ErrorLogディレクティブで指定されているファイルに含まれます。