3 Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインのインストールおよび構成
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグイン(WLS Apacheプラグイン)をインストールおよび構成するには、この項に記載されている情報を読むことをお薦めします。
この項には次のトピックが含まれます:
- WLS Apacheプラグインのインストール
WLS Apacheプラグインをダウンロードしたら、Apache HTTP Serverインストールにモジュールとしてロードできます。 - WLS Apacheプラグインの構成
httpd.conf
ファイルを編集して、パスまたはMIMEタイプによるリクエストのプロキシ、HTTPトンネリングの有効化、他のWLS Apacheプラグイン・パラメータの使用を可能にします。 - HTTP/2サポートの有効化および構成
HTTP/2プロトコルのメリットを活かすには、フロントエンド接続とバックエンド接続の両方にHTTP/2を使用する必要があります。 - プロキシ・プラグインでのIPv6の構成
14.1.2.0.0 WLSプロキシ・プラグインでは、IPv6がサポートされています。具体的には、WebLogicHost
およびWebLogicCluster
構成パラメータがIPv6アドレスをサポートするようになりました。 - WLS ApacheプラグインのDMSメトリックの理解
WLS Apacheプラグインのパフォーマンス・メトリックは、Oracle Dynamic Monitoring Service (DMS)を介して提供されます。たとえば、プロキシされたリクエストの数、失敗したリクエストの数およびその他の特定のメトリックをフェッチできます。 - サポートおよびパッチ適用
プロキシ・プラグインで問題が発生した場合は、使用しているプロキシ・プラグインのバージョンを必ずお知らせください。この情報はApacheログにあります。 - Apache HTTP Serverの非推奨ディレクティブ
WLLogFile
およびDebug
ディレクティブは非推奨です。構成でこれらのディレクティブが使用されている場合は、起動時に注意書きが表示されます。
WLS Apacheプラグインのインストール
WLS Apacheプラグインをダウンロードするには、「Oracle WebLogic Serverプロキシ・プラグインの入手」を参照してください。
この項には次のトピックが含まれます:
- インストールの前提条件
必要な前提条件を満たしていることを確認してください。 - WLS Apacheプラグインのインストール
WLS Apacheプラグインは、共有オブジェクト(.so
)ファイルとして配布されます。 - WLS Apacheプラグインをインストールした後のステップ
14.1.2.0.0 WLS Apacheプラグインをインストールした後に、プラグインの新機能を使用するには、後に示す構成をすべて行います。
インストールの前提条件
必要な前提条件を満たしていることを確認してください。
この項には次のトピックが含まれます:
- WLS Apacheプラグインの取得
- Javaの要件
- Apache HTTP Serverインストール
- Oracle WebLogic Serverインストール
- WLS Apacheプラグインの環境変数の設定
- Microsoft再頒布可能パッケージ2015-2022のインストール
親トピック: WLS Apacheプラグインのインストール
WLS Apacheプラグインの取得
- 「Oracle WebLogic Serverプロキシ・プラグインの入手」の説明に従って、WLS Apacheプラグインをダウンロードします。
- プロキシ・プラグインのZIPディストリビューションを
PLUGIN_HOME
に展開します。たとえば、/home/myhome/weblogic-plugins-14.1.2.0.0/
です。これが、プラグインの解凍先となるディレクトリです。
表3-1に、ディストリビューションに含まれるファイルを示します。
表3-1 Linux用のWLS ApacheプラグインのZipファイルに含まれるファイル
(パス)/ファイル名 | 説明 |
---|---|
|
プロキシ・プラグインのREADMEファイル。 |
|
サードパーティのライセンス関連情報を含むファイル。 |
|
Oracleウォレットを構成するための |
|
OracleウォレットをPEM形式のファイルにエクスポートするための実行可能ファイル。 |
|
|
|
Apache HTTP Server 2.4用のOracle WebLogic Serverプロキシ・プラグイン。 |
|
ヘルパー・ライブラリ。 |
|
|
親トピック: インストールの前提条件
Javaの要件
必要なバージョンのJava (JDK)をインストールします。表3-2に、Apache HTTP Server用14.1.2.0.0プロキシ・プラグインを使用する場合に、特定の機能に必要な最小JDKバージョンを示します。
表3-2 最小JDK要件
JDKをインストールする必要があるホスト | JDKを必要とする機能 | 最低限必要なJDKバージョン | 説明 |
---|---|---|---|
Apache HTTP Serverがインストールされているマシン。 | Oracleウォレットの管理に使用。 | Oracle JDK 17および21 | $PLUGINS_HOME/bin にあるorapki ツールを使用して、Webサーバー用に構成されたOracleウォレットを操作するには、JDKが必要です。
JDKは、Oracleウォレットの内容をファイル・システム上のPEM形式のファイルにエクスポートする |
親トピック: インストールの前提条件
Apache HTTP Serverインストール
サポートされているApache HTTPサーバーのインストール環境があることを確認します。Oracle Fusion Middlewareのサポートされるシステム構成を参照してください。
Apache Portable Runtime 1.7.0 (apr-1.7.0)を使用していることを確認します。次のコマンドを使用して、apr-1.7.0のパスをLD_LIBRARY_PATH
に追加します:
export LD_LIBRARY_PATH=<absolute_path_to_the_directory_containing_apr-1.7.0>/lib:${LD_LIBRARY_PATH}
ノート:
14.1.2.0.0 WLS Apacheプラグインは、Apache Portable Runtime 1.7.0 (apr-1.7.0)でテストされています。そのため、少なくともこのバージョンのAPRを使用することをお薦めします。以前のバージョンのAPRをプロキシ・プラグインで使用すると、正しい動作になるかどうかはわかりません。APRはhttps://apr.apache.org/
からダウンロードできます。
親トピック: インストールの前提条件
Oracle WebLogic Serverインストール
サポートされているバージョンのOracle WebLogic Serverが構成済であり、ターゲット・システム上で実行されていることを確認します。このサーバーは、プロキシ・プラグインのZIPディストリビューションを解凍したシステム上で実行する必要はありません。
サポートされているOracle WebLogic Serverバージョンのリストは、https://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.htmlを参照してください。
Oracle WebLogic Serverの構成の詳細は、『Oracle WebLogic ServerおよびCoherenceのインストールと構成』のOracle WebLogic Serverのインストールの計画に関する項を参照してください。
親トピック: インストールの前提条件
WLS Apacheプラグインの環境変数の設定
ノート:
PLUGINS_HOME
、JAVA_HOME
、LD_LIBRARY_PATH
などの環境変数を設定することをお薦めします。
PLUGINS_HOME=<absolute_path_to_the_directory_where_plugin_zip_is extracted_to>
export PLUGINS_HOME
${VAR_NAME}
構文を使用して、httpd.conf
ファイルにApache HTTP Serverを起動するときに設定される変数を使用できます。たとえば:
LoadModule weblogic_module ${PLUGINS_HOME}/lib/mod_wl_24.so
次の環境変数を設定します。
- 次のコマンドを使用して、プロキシ・プラグインのZIPファイルが解凍されるディレクトリを指すように
PLUGINS_HOME
を設定します:export PLUGINS_HOME=<absolute_path_to_the_directory_where_plugin_zip_is extracted_to>
たとえば:
export PLUGINS_HOME=/home/myhome/weblogic-plugins-14.1.2.0.0/
- 次のコマンドを使用して、Apache HTTP Serverがインストールされているホストに存在するJDKを指すように
JAVA_HOME
を設定します:ノート:
JAVA_HOMEには相対パスを使用できません。export JAVA_HOME=<absolute_path_to_the_JDK_installation_directory>
たとえば:
export JAVA_HOME=/home/myhome/JDK_installation_path
-
UNIXシステムの
LD_LIBRARY_PATH
に$PLUGINS_HOME/lib
が含まれていることを確認します。$PLUGINS_HOME/lib
をLD_LIBRARY_PATH
に追加するには、次のコマンドを使用します:export LD_LIBRARY_PATH=$PLUGINS_HOME/lib:$LD_LIBRARY_PATH
- 「サード・パーティ・ソフトウェアの依存関係」を確認して、
nghttp2
ライブラリへの依存関係を満たすために追加のステップが必要かどうかを判断します。
親トピック: インストールの前提条件
Microsoft再頒布可能パッケージ2015-2022のインストール
Microsoft再頒布可能パッケージ2015-2022をWindowsにインストールする必要があります。詳細は、「Microsoft Visual C++ Redistributable latest supported downloads」を参照してください。
ノート:
このパッケージがインストールされていない場合、mod_wl_24.so
モジュールの構成後に、WindowsでApache Webサーバーの起動が失敗し、次のエラーが表示されます:CANNOT LOAD MODULES/MOD_WL_24.SO
親トピック: インストールの前提条件
WLS Apacheプラグインのインストール
.so
)ファイルとして配布されます。プロキシ・プラグインは、My Oracle Support (https://support.oracle.com/signin
)またはSoftware Delivery Cloudから取得できます。
WLS Apacheプラグインをインストールするには:
親トピック: WLS Apacheプラグインのインストール
WLS Apacheプラグインをインストールした後のステップ
14.1.2.0.0 WLS Apacheプラグインをインストールした後に、プラグインの新機能を使用するには、次に示す構成をすべて行います。
14.1.2.0.0 WLS Apacheプラグインの新機能を使用するには、次を実行します:
- バックエンド接続でのHTTP/2サポートの構成
- TLSv1.3を有効にするには、次のディレクティブ(構成されている場合)を確認します:
この項には次のトピックが含まれます:
サードパーティ・ソフトウェアの依存関係
14.1.2.0.0 WLS Apacheプラグインは、次のサードパーティ・ソフトウェアに依存します:
- OpenSSLバージョン1.1.1xまたは3.0.x
nghttp2
バージョン1.58.0
ノート:
Windows OpenSSLバージョンの場合、Windows環境の最新のApache 2.4ビルドには、OpenSSLバージョン3.xがデフォルトで付属しています。前述のサードパーティ・ソフトウェアのライブラリは、(14.1.2.0.0 WLS Apacheプラグイン・モジュールをロードする) Apache Webサーバー・プロセスが実行されているシステムで使用可能であることが必要です。これらのライブラリは、Apache Webサーバー・プロセスを起動するための前提条件です。
14.1.2.0.0 WLS Apacheプラグインには、OpenSSL 1.1.1xとOpenSSL 3.0.xの両方でサポートされる2つの種類があります。詳細は、Oracle Fusion Middlewareのサポートされるシステム構成に関するページを参照してください。Apache Webサーバー・プロセスにより14.1.2.0.0 WLS Apacheプラグイン・モジュールがロードされると、オペレーティング・システムから提供されるOpenSSLライブラリもプロセス・アドレス領域にロードされます。
HTTPヘッダーの大/小文字処理について
WLS Apacheプラグインは、フロントエンドおよびバックエンド接続用に構成されたHTTPプロトコル・バージョンに基づいてHTTPヘッダーの大/小文字を変換します。
表2-1に、フロントエンドおよびバックエンド接続用に構成されたHTTPプロトコル・バージョンに基づいてリクエスト・ヘッダーとレスポンス・ヘッダーの大/小文字がどのように変更されるかを示します。
表3-3 HTTPリクエスト・ヘッダーおよびレスポンス・ヘッダーの大/小文字
フロントエンド接続のHTTPプロトコル・バージョン | バックエンド接続のHTTPプロトコル・バージョン | Oracle WebLogic Serverプロキシ・プラグインによってバック・エンドに送信されたリクエスト・ヘッダーの大/小文字 | Oracle WebLogic Serverプロキシ・プラグインによってクライアントに送信されたレスポンス・ヘッダーの大/小文字 |
---|---|---|---|
HTTP/2 | HTTP/2 | 小文字 | 小文字 |
HTTP/1.1 | HTTP/2 | 小文字 | キャメル・ケース |
HTTP/2 | HTTP/1.1 | キャメル・ケース | 小文字 |
HTTP/1.1 | HTTP/1.1 | 変換なし | 変換なし |
サポートされていないユース・ケース
14.1.2.0.0 WLS Apacheプラグインは、mod_ssl.so
、mod_http2
などのオープン・ソース・モジュールをロードしてOpenSSLライブラリに依存するように、Apache Webサーバー・プロセスにロードされます。14.1.2.0.0 WLS Apacheプラグインは、OpenSSLライブラリにも依存します。プロキシ・プラグインには2つの種類があり、OpenSSL 1.1.1とOpenSSL 3.0.Xの両方でサポートされています。
Apache Webサーバー・プロセスの現在の機能を確保するために、Apache Webサーバー・プロセス内の様々なモジュールが使用するOpenSSLのバージョンにバイナリ互換性があることを確認し、シンボル・バージョンが競合しないようにすることをお薦めします。
次のユース・ケースは、実行時にシンボルの競合が原因で発生する不適切な実行時動作(プロセスのクラッシュ)につながるため、サポートされていません:
-
Apache Webサーバー・プロセスで使用するオープン・ソースのApacheモジュールが、14.1.2.0.0 WLS Apacheプラグインで使用されるOpenSSLバージョンとのバイナリ互換性がないバージョンのOpenSSLに静的にリンクされている場合に14.1.2.0.0 WLS Apacheプラグインを使用すること。
-
Apache Webサーバー・プロセスで使用するオープン・ソースのApacheモジュールが、OpenSSLバージョンとのバイナリ互換性がないバージョンのOpenSSLに動的にリンクされていて、OpenSSLライブラリでシンボル・バージョニングがサポートされていない場合に14.1.2.0.0 WLS Apacheプラグインを使用すること。
WLS Apacheプラグインの構成
httpd.conf
ファイルを編集して、パスまたはMIMEタイプによるリクエストのプロキシ、HTTPトンネリングの有効化、他のWLS Apacheプラグイン・パラメータの使用を可能にします。
この項には次のトピックが含まれます:
httpd.confファイルの構成
WLS Apacheプラグインを構成するには、Apache HTTP Serverインストールのhttpd.conf
ファイルを編集します。次のタスクを実行します。
- タスク1: MIMEリクエストの構成
- タスク2: WLS Apacheプラグインの追加パラメータの定義
- タスク3: HTTPトンネリングの有効化(省略可)
- タスク4: Webサービスのアトミック・トランザクションの有効化(省略可)
- タスク5: 構成の検証と適用
親トピック: WLS Apacheプラグインの構成
タスク1: MIMEリクエストの構成
リクエストは、MIMEタイプまたはパス、あるいはその両方によってプロキシできます。テキスト・エディタでhttpd.conf
ファイルを開き、次のステップを実行します:
ノート:
MIMEタイプおよびパスによるプロキシの両方を有効にした場合は、パスによるプロキシがMIMEタイプによるプロキシより優先されます。MIMEタイプによるプロキシ・リクエストの構成
httpd.conf
ファイルでMIMEタイプによるMIMEリクエストを構成するには、MatchExpression
行を<IfModule>
ブロックに追加します:
- クラスタ化されていないOracle WebLogic Serverの場合:
MatchExpression
ディレクティブを使用してWebLogicHost
およびWebLogicPort
パラメータを定義します。次の例では、クラスタ化されていないOracle WebLogic Serverでは、MIMEタイプ.jsp
のすべてのファイルがプロキシされることを指定します:<IfModule mod_weblogic.c> WebLogicHost my-weblogic.server.com WebLogicPort 7001 MatchExpression *.jsp </IfModule>
複数のMatchExpression
を使用することもできます。たとえば:<IfModule mod_weblogic.c> WebLogicHost my-weblogic.server.com WebLogicPort 7001 MatchExpression *.jsp MatchExpression *.xyz </IfModule>
- Oracle WebLogic Serverのクラスタの場合:
MatchExpression
ディレクティブを使用してWebLogicClusterパラメータを定義します。次の例では、クラスタ化されたOracle WebLogic Serverでは、MIMEタイプ.jsp
のすべてのファイルがプロキシされることを指定します:<IfModule mod_weblogic.c> WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001 MatchExpression *.jsp </IfModule>
「MatchExpression」を参照してください。
親トピック: タスク1: MIMEリクエストの構成
パスによるプロキシ・リクエストの構成
httpd.conf
ファイルでパスによるMIMEリクエストを構成するには、<Location>
タグ内にPathTrim
パラメータを構成します。PathTrim
パラメータは、リクエストがOracle WebLogic Serverインスタンスに渡される前にURLの先頭から切り捨てられる文字列を指定します。「PathTrim」を参照してください。
Location
ブロックは、URLに/weblogic
を含むすべてのリクエストをプロキシします:<Location /weblogic>
WLSRequest On
PathTrim /weblogic
</Location>
<Location>
ディレクティブは、囲まれたディレクティブの範囲をURLによって制限します。「Apache Location Directive」を参照してください。
親トピック: タスク1: MIMEリクエストの構成
タスク2: WLS Apacheプラグインの追加パラメータの定義
WLS Apacheプラグインの追加パラメータを定義します。
WLS Apacheプラグインでは、「Oracle WebLogic Serverプロキシ・プラグインの一般パラメータ」にリストされているパラメータが認識されます。WLS Apacheプラグインの動作を変更するには、次のいずれかの方法でそれらのパラメータを定義します:
- パスによるプロキシに適用するパラメータの場合、
<Location>
ブロック - MIMEタイプによるプロキシに適用するパラメータの場合、グローバルまたは仮想ホスト・スコープ
親トピック: httpd.confファイルの構成
タスク3: HTTPトンネリングの有効化(省略可)
T3プロトコルのHTTPトンネリングを有効にするには、<Location>
ブロックを構成します。
T3プロトコルおよびweblogic.jar
を使用している場合にHTTPトンネリングを有効にするには、次の<Location>
ブロックをhttpd.conf
ファイルに追加します:
<Location /bea_wls_internal>
WLSRequest On
</Location>
親トピック: httpd.confファイルの構成
タスク4: Webサービスのアトミック・トランザクションの有効化(省略可)
<Location>
ブロックを構成することで有効にできます。<wls-wsat>
パラメータが、パスによるプロキシに適用されます。オプションで、Apache HTTP Server用のOracle WebLogic 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
を参照してください。
親トピック: httpd.confファイルの構成
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>
親トピック: WLS Apacheプラグインの構成
Apache WebサーバーおよびWLS ApacheプラグインのデフォルトのHTTPプロトコルの構成
- クライアントにより、Apache WebサーバーへのHTTP/1.1フロントエンド接続が作成されます:
- HTTP/1.1のみをサポートするクライアントでは、HTTP/1.1フロントエンド接続が作成されます。
- HTTP/2をサポートするクライアントでは、HTTP/1.1フロントエンド接続がネゴシエートされます。
- WLS Apacheプラグインにより、WebLogic ServerへのHTTP/1.1バックエンド接続が作成されます:
- WebLogic ServerでHTTP/1.1のみがサポートされている場合、Apache WebサーバーではHTTP/1.1バックエンド接続が作成されます。
- WebLogic ServerでHTTP/2がサポートされている場合、Apache WebサーバーではHTTP/1.1バックエンド接続がネゴシエートされます。
親トピック: WLS Apacheプラグインの構成
例: WLS Apacheプラグインの構成
次の例では、バックエンドのOracle WebLogic Serverにリクエストをプロキシするよう、WLS Apacheプラグインを簡単に設定する基本的な手順を示します。
親トピック: WLS Apacheプラグインの構成
weblogic.confファイルのhttpd.confファイルへのインクルード
複数の別個の構成ファイルを保持するには、httpd.conf
ファイルの<IfModule>
ブロックでApache HTTP ServerのInclude
ディレクティブを使用して、weblogic.conf
という別個の構成ファイルにパラメータを定義できます。
<IfModule mod_weblogic.c> # Config file for Oracle WebLogic Server that defines the parameters Include conf/weblogic.conf </IfModule>
weblogic.conf
ファイルの構文は、httpd.conf
ファイルの構文と同じです。
次の項では、weblogic.conf
ファイルの作成方法を説明し、weblogic.conf
ファイルのサンプルを示します:
親トピック: WLS Apacheプラグインの構成
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仮想ホストに関するドキュメントを参照)。 <Files>
ブロックではなくMatchExpression
文を使用する必要があります
weblogic.conf
ファイルのサンプルを次に示します:
<IfModule mod_weblogic.c>
WebLogicCluster johndoe02:8005,johndoe:8006
WLTempDir "/tmp"
DebugConfigInfo ON
KeepAliveEnabled ON
KeepAliveSecs 15
</IfModule>
/jurl/*
に一致するすべてのリクエストは、/tmp/jurl
にPOSTデータ・ファイルを持ち、リクエストをmyCluster
およびポート7001にリバース・プロキシします。<Location /jurl> WLSRequest On WebLogicCluster myCluster:7001 WLTempDir "/tmp/jurl" </Location>
/web/*
に一致するすべてのリクエストは、/tmp/web
にPOSTデータ・ファイルを持ち、リクエストをmyhostおよびポート8001にリバース・プロキシします。<Location /web> WLSRequest On PathTrim /web WebLogicHost myhost WebLogicPort 8001 WLTempDir "/tmp/web" </Location>
/foo/*
に一致するすべてのリクエストでは、POSTデータ・ファイルが/tmp/foo
に書き込まれ、リクエストがmyhost02
およびポート8090
にリバース・プロキシされます。<Location /foo> WLSRequest On WebLogicHost myhost02 WebLogicPort 8090 WLTempDir "/tmp/foo" PathTrim /foo </Location>
weblogic.conf構成ファイルのサンプル
次に示す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.
<IfModule mod_weblogic.c>
WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
ErrorPage http://myerrorpage.mydomain.com
MatchExpression *.jsp
</IfModule>
####################################################
この例で、ファイル名のパターン、HTTPリクエストの転送先となるOracle WebLogic Serverホストおよびその他の様々なパラメータを示すためのMatchExpression
パラメータ構文は、次のとおりです:
MatchExpression [filename pattern] [WebLogicHost=host] | [paramName=value]
次の例の最初のMatchExpressionパラメータでは、ファイル名のパターン*.jsp
を指定してから、1つのWebLogicHost
を指定します。パイプ記号の後に続くparamName=value
の組合せでは、Oracle 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.
<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クラスタなし
# 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>
例3-4 複数の名前ベースの仮想ホストの構成
# VirtualHost1 = localhost:80
<VirtualHost 127.0.0.1:80>
DocumentRoot "/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 "/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>
WebSocketプロキシ構成について
Apache HTTP Server 2.4.x用14.1.2.0.0 WLS Apacheプラグインでは、WebSocket接続アップグレード・リクエストを処理し、Oracle WebLogic Server 14c (14.1.1.0.0)以降でホストされているWebSocketアプリケーションに効果的にプロキシできます。
- Apache HTTP Server内で
mod_reqtimeout
モジュールを使用する場合は、WebSocket接続を考慮し、構成されているclient timeout
値を適切に設定します。 mod_reqtimeout
モジュールのHTTPリクエストのデフォルト・タイムアウト値は、Apache HTTP Server 2.2と2.4の間で変更されました。この変更により、WebSocket接続が切断される場合があります。したがって、適切なclient timeout
値を使用する必要があります。- サービス拒否攻撃などの悪意のある攻撃を回避するには、WebSocket接続に適切な
client timeout
値を構成する必要があります。
ノート:
WebSocketはHTTP/2ではサポートされていません。親トピック: WLS Apacheプラグインの構成
ログ・ファイルの検証
weblogic
を使用して参照を簡単に識別できます:[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] ======
LogLevel
をdebugに設定します。ログは、Apache WebサーバーのErrorLog
ディレクティブが指すファイルに含まれています。config file name: httpd.conf
setting: LogLevel debug
また、wl_exportwallet_log
という名前の新しいログ・ファイルは、Webサーバーのログ・ファイルが存在するファイル・システム・パスに作成されます。Apache Webサーバー・プロセスの場合、このファイルは$SERVER_ROOT/logs/
にあります。
Webサーバー構成で使用されるOracleウォレットは、OpenSSL APIがOracleウォレットに存在するキーおよび証明書にアクセスできるように、ファイル・システム上のPEM形式のファイルにエクスポートする必要があります。これは、export_wallet
という個別のプロセスをメインWebサーバー・プロセスからフォークすることで行われます。export_wallet
プロセスは、Webサーバーのログではなく、wl_exportwallet_log
に書き込みます。
親トピック: WLS Apacheプラグインの構成
WLS Apacheプラグイン使用時のクラスタリング・フェイルオーバー
WLS Apacheプラグインをクラスタのフロントエンドとして使用すると、プラグインでは複数の構成パラメータを使用して、WebLogic Serverホストへの接続を待機する時間が判断され、接続の確立後には、プラグインがレスポンスを待機する時間が判断されます:
-
Apacheの
idempotent
フラグの設定を検証します。idempotent
がONに設定されているときに、指定したWLIOTimeoutSecs
値内でサーバーが応答しない場合は、プラグインがフェイルオーバーします。idempotent
がONに設定され、サーバーがREAD_ERROR_FROM_SERVER
などのエラーで応答する場合にもプラグインはフェイルオーバーします。OFFに設定されている場合、プラグインはフェイルオーバーしません。『Oracle WebLogic ServerにおけるWebサーバー1.1プラグインの使用』の「Webサーバー・プラグインのパラメータ」を参照してください。 -
WebLogicプロキシ・プラグインの再試行メカニズムの設定を確認します; たとえば、許可される再試行の最大回数が、
ConnectTimeoutSecs
値をConnectRetrySecs
値で除算した値と等しいかどうかなどを確認します。『Oracle WebLogic ServerにおけるWebサーバー1.1プラグインの使用』のフェイルオーバー、CookieおよびHTTPセッションに関する項を参照してください。
親トピック: WLS Apacheプラグインの構成
HTTP/2サポートの有効化および構成
HTTP/2プロトコルのメリットを活かすには、フロントエンド接続とバックエンド接続の両方にHTTP/2を使用する必要があります。
- Apache Webサーバーが、HTTP/2フロントエンド接続をサポートするよう構成されていること。
- WLS Apacheプラグインが、HTTP/2バックエンド接続をサポートするよう構成されていること。
- HTTP/2をサポートするバージョンのWebLogic Serverが使用されていて、WebLogic Serverが、HTTP/2をサポートするよう構成されていること。
ノート:
WebLogic Server 14.1.1とWebLogic Server 14.1.2のどちらでもHTTP/2がサポートされており、HTTP/2をサポートするようデフォルトで構成されています。
- クライアントにより、Apache WebサーバーへのHTTP/2フロントエンド接続が作成されます(可能な場合):
- HTTP/1.1のみをサポートするクライアントでは、HTTP/1.1フロントエンド接続がネゴシエートされます。
- HTTP/2をサポートするクライアントにより、HTTP/2フロントエンド接続が作成されます。
- WLS Apacheプラグインにより、WebLogic ServerへのHTTP/2バックエンド接続が作成されます。使用されているのがHTTP/1.1とHTTP/2のどちらのフロントエンド接続であるかにかかわらず、HTTP/2バックエンド接続が使用されます。
HTTP/2をサポートするクライアントで使用する場合、そのような構成では、クライアントからApache Webサーバー、Apache WebサーバーからWebLogic Serverへと、HTTP/2をエンドツーエンドで使用できます。このような構成では、HTTP/1.1のみをサポートするクライアントからのHTTP/1.1フロントエンド接続もサポートされます。HTTP/2バックエンド接続の使用は、HTTP/1.1フロントエンド接続を使用するクライアントに対して透過的です。
次の項では、HTTP/2をサポートするよう、Apache WebサーバーおよびWLS Apacheプラグインを有効化して構成する方法を説明します:
Apache WebサーバーでのHTTP2サポートの有効化
mod_http2
モジュールを使用して、フロントエンド接続のHTTP/2を有効化します。mod_http2
では、実装のベースとしてnghttp2
ライブラリ(libnghttp2.so
)が使用されます。詳細は、Apache Webサーバー・ガイドで、Apache httpdでのHTTP/2の実装について参照してください。
親トピック: HTTP/2サポートの有効化および構成
フロントエンド接続でのHTTP/2サポートの構成
http2_mod
モジュールをロードします:LoadModule http2_module modules/mod_http2.so
- サーバー構成に追加する必要がある2つ目のディレクティブは、次のとおりです:
Protocols h2 http/1.1
- これにより、セキュアなバリアントであるh2を、サーバー接続の優先プロトコルにすることができます。すべてのHTTP/2バリアントを有効にする場合は、次のように記述します:
Protocols h2 h2c http/1.1
親トピック: HTTP/2サポートの有効化および構成
WebLogic ApacheプラグインでのHTTP2サポートの有効化
WLS Apacheプラグインでは、バックエンド接続でHTTP/2をサポートするためにnghttp2
ライブラリ(libnghttp2.so
)が必要です。詳細は、「Apache WebサーバーでのHTTP2サポートの有効化」を参照してください。
親トピック: HTTP/2サポートの有効化および構成
バックエンド接続でのHTTP/2サポートの構成
バックエンド接続にHTTP/2を構成するには、weblogic.conf
ファイルにWLProtocol
ディレクティブを設定する必要があります。
Copy LoadModule weblogic_module modules/mod_wl_24.so Listen 4455 <VirtualHost *:4455> ServerName vh1.com WLSSLWallet /scratch/user/temp/server SecureProxy ON WLProtocol http/2 <Location /myApp> WLSRequest On WebLogicCluster ns1.example.com:7011,ns2.example.com:7011,ns3.example.com:7011 </Location> <Location /myApp2> WebLogicHost example.com WLSRequest On WebLogicPort 7025 </Location> </VirtualHost>
親トピック: HTTP/2サポートの有効化および構成
サーバー・プッシュ機能
サーバー・プッシュ機能は、HTTP/2プロトコルの主な機能の1つです。
Webサイトへのアクセスでは、リクエストおよびレスポンスのパターンに従います。ユーザーがリモート・サーバーにリクエストを送信します。その後、サーバーは、リクエストされたコンテンツを返します。通常、Webサーバーへの最初のリクエストはHTMLドキュメントのリクエストです。このシナリオでは、サーバーはリクエストされたHTMLリソースを返します。HTMLはブラウザによって解析され、スタイル・シート、スクリプト、イメージなどの他のアセットへの参照が検出されます。検出されると、ブラウザはそれらのアセットに対して個別のリクエストを行い、これにサーバーが応答します。このメカニズムの問題は、ブラウザが重要なアセットを検出および取得するのをHTMLドキュメントのダウンロード後までユーザーが待たなければならないことです。これにより、レンダリング時間が遅くなり、ロード時間が長くなります。
サーバー・プッシュ機能は、この問題の解決策です。ユーザーが明示的に要求しなくても、サーバーが先んじてWebサイト・アセットをクライアントにプッシュします。
たとえば、すべてのページがstyles.css
という外部スタイル・シートで定義されているスタイルに依存しているWebサイトを考えてみます。ユーザーがサーバーにindex.html
をリクエストすると、サーバーがindex.html
に対するレスポンスの送信を開始した直後に、styles.css
がユーザーに送信されます。ユーザーは、サーバーがindex.html
を送信するのを待ち、ブラウザがstyles.css
をリクエストして受信するのを待つのではなく、最初のリクエストでサーバーがindex.html
とstyles.css
の両方を応答するのを待つだけで済みます。これにより、ページのレンダリング時間が短縮されます。
サーバー・プッシュ機能を有効にするには、H2Pushディレクティブを構成し、Webサーバー構成ファイルまたはレスポンスでリンク・ヘッダーを使用します。H2Pushディレクティブの構成については、Apache HTTP ServerドキュメントのH2Pushディレクティブに関する項を参照してください。
WLS Apacheプラグインでは、Link.Builder
APIを使用して作成されたリンク・ヘッダーがサポートされています。
Webサーバー構成ファイルのリンク・ヘッダーの例:
H2Push on
<Location /xxx.html>
Header add Link "</xxx.css>;rel=preload"
Header add Link "</xxx.js>;rel=preload"
</Location>
レスポンスのリンク・ヘッダーの例:
</xxx.css>;rel="preload";type="text/css"
httpd.conf
ファイルでH2Push
をonに設定します: -----config section---
H2Push on
----------------------
ノート:
HTTPServeletRequest
からのPushBuilder
、およびリンク・ヘッダーとともに103アーリー・ヒントを使用することはサポートされていません。
- Windows ApacheでのH2Pushの有効化
Windows Apacheサーバーでは、H2Pushが正しく機能するために必要なheaders_module
がロードされていることを確認する必要があります。
親トピック: HTTP/2サポートの有効化および構成
Windows ApacheでのH2Pushの有効化
Windows Apacheサーバーでは、H2Pushが正しく機能するために必要なheaders_module
がロードされていることを確認する必要があります。
次のステップを実行してH2Pushを有効にします:
親トピック: サーバー・プッシュ機能
プロキシ・プラグインでのIPv6の構成
14.1.2.0.0 WLSプロキシ・プラグインでは、IPv6がサポートされています。具体的には、WebLogicHost
およびWebLogicCluster
構成パラメータがIPv6アドレスをサポートするようになりました。
「WebLogicCluster」および「WebLogicHost」を参照してください。
たとえば:
<IfModule mod_weblogic.c> WebLogicHost [a:b:c:d:e:f] WebLogicPort 7002 ... </IfModule>
または
<IfModule mod_weblogic.c> WebLogicCluster [a:b:c:d:e:f]:<port>, [g:h:i:j:k:l]:<port> .... </IfModule>
IPv6アドレスにマップされているホスト名を使用することもできます。
<IfModule mod_weblogic.c>
#hostname1 is mapped to IPv6 address in /etc/hosts file
WebLogicHost hostname1
WebLogicPort 7002
...
</IfModule>
/etc/hosts
ファイルのサンプル・エントリ: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
::1 hostname1
ノート:
Windows 2008以降、DNSサーバーは、IPv4アドレスよりもIPv6アドレスを優先して返します。IPv4を使用してWindows 2008以降のシステムに接続している場合は、最初にリンクローカルIPv6アドレス形式が試みられ、それによって遅延が顕著となり、パフォーマンスが低下する可能性があります。IPv4アドレス形式を使用するには、構成ファイルでかわりのIPアドレスを使用するようシステムを構成するか、IPv4アドレスをetc/hosts
ファイルに追加します。
また、構成ファイルでDynamicServerList
プロパティをOFF
に設定すると、IPv6を使用したパフォーマンスも向上します。OFF
に設定すると、プロキシ・プラグインでは、プロキシ・プラグインからプロキシされたロード・バランシング・リクエストに使用される動的クラスタ・リストが無視され、WebLogicCluster
パラメータで指定された静的リストが使用されます。
WLS ApacheプラグインのDMSメトリックの理解
WLS Apacheプラグインのパフォーマンス・メトリックは、Oracle Dynamic Monitoring Service (DMS)を介して提供されます。たとえば、プロキシされたリクエストの数、失敗したリクエストの数およびその他の特定のメトリックをフェッチできます。
Oracle WebLogic Server 14.1.2.0.0プロキシ・プラグインのDMSパフォーマンス・メトリックを構成および表示できます。
返されるDMSメトリックについては、「DMS状態メトリック」、「DMSイベント・メトリック」および「DMS PhaseEventメトリック」で説明しています。
この項には次のトピックが含まれます:
WLS ApacheプラグインのDMSメトリックの構成
WLS Apacheプラグインの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 $PLUGINS_HOME/mod_wl_24.so
<Location /metrics>
SetHandler dms-handler
</Location>
親トピック: WLS ApacheプラグインのDMSメトリックの理解
WLS Apacheプラグインのパフォーマンス・メトリックの表示
次のURLを使用して名前のメトリックを表示できます:
http://
apachehost:apacheport
/metrics
ここで、apachehost
は、Apacheサーバーのホスト名、apacheport
はポート番号です。
WLS Apacheプラグインのメトリックは、/WebLogicProxy [type=WebLogicProxy]
セクションにあります。
親トピック: WLS ApacheプラグインのDMSメトリックの理解
DMS状態メトリック
状態メトリックは、システムのステータス情報や、イベントに関連付けられていないメトリックを追跡します。状態メトリックの詳細は、表3-4を参照してください。
表3-4 WLS OHSプラグイン・モジュールの状態メトリック
メトリック名 | 説明 |
---|---|
|
拒否された( |
|
正常に処理できなかったリクエストの数。エラーについては、イベント・メトリックを参照してください。 |
|
|
|
|
|
リクエストが再試行された回数。リクエストは、通常、失敗すると再試行されます(構成により異なる)。これまでにリクエストが再試行された場合、このメトリックは増分します(リクエストが再試行された回数に関係なく、リクエストごとに1回)。 |
|
処理に成功したリクエストの数。リクエストの処理が成功した場合(Oracle WebLogic Serverにプロキシされてレスポンスがクライアントに返される)、このメトリックは増分します。 |
|
現在アクティブなWebSocketアップグレード・リクエストの数。 |
|
終了したWebSocketアップグレード・リクエストの数。WebSocketセッションを(なんらかの理由で)終了する場合、このメトリックが更新されます。 |
|
アクティブの可能性がある同時WebSocketリクエストの最大数。
|
|
この値を定義するには、次のように、アクティブなWebSocketsの数( ( |
|
作成されたWebSocketアップグレード・リクエストの数。リクエストURIがWebSocketアップグレード・リクエストの場合、このメトリックは増分します。 |
|
正常に完了したWebSocketアップグレード・リクエストの数。Oracle WebLogic Serverが |
親トピック: WLS ApacheプラグインのDMSメトリックの理解
DMSイベント・メトリック
DMSイベント・メトリックは、システム・イベントをカウントします。DMSイベントは、継続時間の短いシステム・イベントや、イベントの継続時間よりもイベントの発生が重要な場合のイベントを追跡します。イベント・メトリックの詳細は、表3-5を参照してください。
表3-5 WLS OHSプラグインのイベント・メトリック。
メトリック名 | 説明 |
---|---|
|
|
|
|
|
他のエラーの数。たとえば、 |
|
|
|
|
|
|
|
|
|
|
|
クライアントにより終了したWebSocketアップグレード・リクエストの数。クライアントがWebSocketアップグレード・リクエストを送信してクライアントが接続を終了する場合、このメトリックは更新されます。 |
|
エラーが原因で終了したWebSocketセッションの数。WebSocket接続が終了する原因となるエラーがある場合、このメトリックは更新されます。 |
|
WebSocketアップグレード・リクエストが拒否された回数。WebSocketアップグレード・リクエストのレスポンスは |
|
サーバーにより終了したWebSocketアップグレード・リクエストの数。Oracle WebLogic ServerがWebSocket通信の終了を開始する場合、このメトリックは更新されます。たとえば、リクエストのアップグレード後のタイムアウトまたは通信なし(デフォルトで5分)など。 |
親トピック: WLS ApacheプラグインのDMSメトリックの理解
DMS PhaseEventメトリック
DMS PhaseEventメトリックは、コード内の特定セクションの開始から終了までにかかる時間を測定します。PhaseEventは、あるメソッドまたはコード・ブロックの時間を追跡します。フェーズ・イベントごとに、「アクティブな件数」、「完了した件数」、「合計時間」、「最小時間」、「最大時間」、「平均時間」の値が含まれます。PhaseEventメトリックの詳細は、表3-6を参照してください。
表3-6 WLS OHSプラグインのPhaseEventメトリック
メトリック名 | 説明 |
---|---|
|
進行中のWebSocket通信。「WebSocketアップグレードの成功」から「WebSocket接続の終了」までのフェーズ(時間) |
|
「Oracle WebLogic Serverへのリクエストの送信」から「レスポンスの待機中」までのフェーズ(時間)。 |
親トピック: WLS ApacheプラグインのDMSメトリックの理解
サポートおよびパッチ適用
バージョン情報は、次のスニペットのようになります。
WebLogic Server Plugin version 14.1.2.0.0 <WLSPLUGINS_XXXX_XXXX_XXXXX.XXXX>
ノート:
Linux用のApache Webサーバーでは、次のコマンドを実行してプラグインのバージョンを確認することもできます:$ strings ${PLUGINS_HOME}/lib/mod_wl_24.so | grep -i wlsplugins
プロキシ・プラグインのパッチには、通常、置き換えられる1つ以上の共有オブジェクトが含まれています。パッチ内の共有オブジェクトに置き換える前に、必ず元のファイルをバックアップしてください。ログ内のバージョン文字列を確認して、パッチが正常に適用されていることを検証してください。
セキュリティ修正の最新の更新は、Oracle Fusion Middlewareのクリティカル・パッチ更新(CPU)パッチ・アドバイザ(ドキュメントID 2806740.2)から入手できます。
Apache HTTPサーバーの非推奨ディレクティブ
WLLogFile
およびDebug
ディレクティブは非推奨です。構成でこれらのディレクティブが使用されている場合は、起動時に注意書きが表示されます。
[Thu May 14 23:22:19 2015] [warn] weblogic: The Debug directive is ignored. The web server log level is used instead.
ログファイルの詳細は、「ログ・ファイルの検証」を参照してください。