3 Apache HTTP Server用プラグインの構成
Oracle HTTP ServerからOracle WebLogic Serverへのリクエストをプロキシ処理するには、mod_wl_ohs
プラグインを使用します。このプラグインは、Apache HTTP Server用プラグインと似ています。ただし、別途プラグインをダウンロードしてインストールする必要はありません。mod_wl_ohs
の構成の詳細は、「Oracle HTTP Server用プラグインの構成」を参照してください。
WebLogic Serverプロキシ・プラグイン12.2.1.0以降のバージョンでは、ビルドはIntelコンパイラからMSVCコンパイラに変わりました。Apache HTTP ServerをWebLogic Serverプロキシ・プラグインのフロント・エンドとして使用する場合、プラグイン・ライブラリは、Microsoftから提供されるmsvcp110.dll
およびmsvcr110.dll
の2つのDLLに依存します。これらのDLLは、x64用のMicrosoft Visual C ++再頒布可能パッケージで入手可能です。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインをインストールして構成するには、次の項を読んでください。
Apache HTTP Serverのサポートに関するノート
Apache HTTP Server用のOracle WebLogic Serverプロキシ・プラグインは、Apache 2.4 Webサーバーでサポートされており、WebSocketアプリケーションのフロントエンドとなることができます。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインのインストール
「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.4.0/
です。これは、プラグインの解凍先となるディレクトリです。このディストリビューションには、次のようなファイルが含まれています。
表3-1 Apache Webサーバー・プラグインのZipに含まれているファイル
(パス)/ファイル名 説明 README.txt
プラグインのREADMEファイル
bin/orapki.bat
Oracleウォレットを構成するためのorapkiツール
j
lib/*.jar
orapkiヘルパーJavaライブラリ
lib/mod_wl.so
Apache 2.2用のWebLogicプロキシ・モジュール
ノート:
Apache 2.2.xはサポートされなくなりました。したがって、このプロキシ・モジュールはサポートされなくなりました。かわりに、2.4プロキシ・モジュールを使用してください。lib/*.so
ヘルパー・ライブラリ
l
ib/mod_wl_24.so
Apache 2.4用のWebLogicプロキシ・モジュール
-
SSLを使用するためにJDK 8をインストールします。SSLで使用するためにウォレットや証明書失効リストなどの公開キー・インフラストラクチャ(PKI)要素を管理するorapkiユーティリティを使用するには、JDK 8のインストールが必要です。
-
サポートされているApache HTTPサーバーのインストール環境があることを確認します。https://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.htmlを参照してください。
-
サポートされているバージョンのOracle WebLogic Serverが構成済であり、ターゲット・システム上で実行されていることを確認します。このサーバーはプラグインのzipディストリビューションを解凍したシステム上で実行する必要はありません。サポートされているOracle WebLogic Serverバージョンの詳細は、https://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.htmlを参照してください。
Apache HTTPサーバー・プラグインのインストール
Apache HTTP Server用のOracle WebLogic Serverプロキシ・プラグインは、共有オブジェクト(.so
)ファイルとして配布されます。プラグインは、次のサイトから入手できます。
http://www.oracle.com/technetwork/middleware/webtier/overview/index.html
Apache HTTPサーバー・プラグインをインストールするには:
Apache HTTPサーバー・プラグインの構成
この項では、HTTPトンネリングを有効にし、Oracle WebLogic Serverプラグインのその他のパラメータを使用するため、httpd.confファイルを編集してパスまたはMIMEタイプによってリクエストをプロキシする方法を説明します。
httpd.confファイルの構成
Apache HTTP Serverプラグインを構成するには、Apache HTTPサーバー・インストールのhttpd.conf
ファイルを編集します。次のタスクを実行します。
タスク1: MIMEリクエストの構成
リクエストは、MIMEタイプまたはパス、あるいはその両方によってプロキシできます。テキスト・エディタでhttpd.confファイルを開きます。
ノート:
MIMEタイプおよびパスによるプロキシの両方を有効にした場合は、パスによるプロキシがMIMEタイプによるプロキシより優先されます。
タスク2: Oracle WebLogic Serverプロキシ・プラグインのその他パラメータの定義
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインのためのその他のパラメータを定義します。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインでは、「Webサーバー・プラグインの一般パラメータ」でリストされているパラメータが認識されます。Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインの動作を変更するには、次のどちらかでパラメータを定義します。
-
パスによるプロキシに適用するパラメータの場合、
<Location>
ブロック -
MIMEタイプによるプロキシに適用するパラメータの場合、グローバルまたは仮想ホスト・スコープ
タスク3: HTTPトンネリングの有効化(省略可)
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>
タスク4: Webサービスのアトミック・トランザクションの有効化(省略可)
<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を参照してください。
LocationブロックまたはVirtualHostブロック内へのWebLogicプロパティの配置
<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.confファイルのhttpd.confファイルへのインクルード
別個の構成ファイルを複数保持する場合は、次のように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ファイルを作成するためのルール
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.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. <IfModule mod_weblogic.c> WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001 ErrorPage http://myerrorpage.mydomain.com MatchExpression *.jsp </IfModule> ####################################################
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. <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. <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 Serverの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_24.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 ServerのDMSパフォーマンス・メトリックを構成して表示できます。Apache HTTPサーバーには、Oracle WebLogic Serverと同じDMSメトリックのセットが用意されています。
返されるDMSメトリックについては、「DMS状態メトリック」、「DMSイベント・メトリック」および「DMS PhaseEventメトリック」で説明しています。
この項の内容は次のとおりです。
Apache HTTP ServerプラグインのDMSメトリックの構成
Apache HTTP ServerのDMSメトリックを構成するには、httpd.conf
ファイルに次のコードを追加します:
# Add the following LoadModule only if it is not already present
# Use mod_wl_24.so for Apache 2.4
LoadModule weblogic_module $PLUGIN_HOME/mod_wl_24.so
<Location /metrics>
SetHandler dms-handler
</Location>
Apache HTTPサーバーの非推奨ディレクティブ
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] ======
ディレクティブ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ディレクティブで指定されているファイルに含まれます。