この章では、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをインストールして構成する方法を説明します。次の項で構成されます。
注意:
Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするためには、mod_wl_ohsプラグインを使用します。これはApache HTTPサーバー用のプラグインと似ていますが、別途ダウンロードしてインストールする必要はありません。mod_wl_ohsの構成の詳細は、「Oracle HTTP Server用プロキシ・プラグインの構成」を参照してください。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインは、Apache 2.2および2.4のWebサーバーでサポートされており、WebSocketアプリケーションのフロントエンドとなることができます。
「Oracle WebLogic Serverプロキシ・プラグインの入手方法」の説明に従ってApache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをダウンロードした後、それをApache HTTP ServerモジュールとしてApache HTTP Serverのインストール環境にインストールできます。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをインストールする前に、次のインストールと検証のタスクを行います。
「Oracle WebLogic Serverプロキシ・プラグインの入手方法」の説明に従って、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをダウンロードします。
プラグインのzipディストリビューションをPLUGIN_HOME (たとえば、/home/myhome/weblogic-plugins-12.2.1/)に解凍します。これは、プラグインの解凍先となるディレクトリです。
このディストリビューションには、次のようなファイルが含まれています。
表3-1 Apache Webサーバー・プラグインのZipに含まれているファイル
(パス)/ファイル名 | 説明 |
---|---|
|
プラグインのREADMEファイル |
|
Oracleウォレットを構成するためのorapkiツール |
j |
orapkiヘルパーJavaライブラリ |
|
Apache 2.2用のWebLogicプロキシ・モジュール |
|
ヘルパー・ライブラリ |
l |
Apache 2.4用のWebLogicプロキシ・モジュール |
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サーバー・プラグインをインストールするには:
この項では、HTTPトンネリングを有効にし、Oracle WebLogic Serverプラグインのその他のパラメータを使用するため、httpd.confファイルを編集してパスまたはMIMEタイプによってリクエストをプロキシする方法を説明します。
Apache HTTP Serverプラグインを構成するには、Apache HTTPサーバー・インストールのhttpd.conf
ファイルを編集します。次のタスクを実行します。
リクエストは、MIMEタイプまたはパス、あるいはその両方によってプロキシできます。テキスト・エディタでhttpd.confファイルを開きます。
注意:
MIMEタイプおよびパスによるプロキシの両方を有効にした場合は、パスによるプロキシがMIMEタイプによるプロキシより優先されます。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインのためのその他のパラメータを定義します。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインでは、「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>
<Location>
ブロックを構成することで有効にできます。<wls-wsat>パラメータが、パスによるプロキシに適用されます。オプションで、Apache HTTP Server用WebLogic Web Serverプロキシ・プラグインの動作を変更するパラメータを定義できます。<Location /wls-wsat> WLSRequest On </Location>
WebLogic Webサービスは、IBM WebSphere、JBoss、Microsoft .NETなどの外部トランザクション処理システムとの相互運用性を実現します。Webサービスのアトミック・トランザクション(WS-AtomicTransaction)の詳細は、https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ws-txを参照してください。
<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 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ファイルの例をテンプレートとして使用し、ご使用の環境およびサーバーに合せて変更できます。#で始まる行はコメントです。
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> ####################################################
この例で、ファイル名のパターン、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
の組合せでは、クラスタのエラー・ページを指定しています。
複数の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>
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>
複数の名前ベースの仮想ホストを構成する例
# 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サーバーでは大文字と小文字が区別されません。
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メトリックについては、「DMS状態メトリック」、「DMSイベント・メトリック」および「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>
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ディレクティブで指定されているファイルに含まれます。