1 Oracle WebLogic Serverプロキシ・プラグインの概要

Oracleには、Oracle WebLogic Serverで使用する様々なプロキシ・プラグインが用意されています。

この章の内容は次のとおりです。

Oracle WebLogic Serverプロキシ・プラグインとは

Oracle WebLogic Serverプロキシ・プラグインを使用すると、HTTP WebサーバーからOracle WebLogic Serverにリクエストをプロキシできます。こうしてプラグインによりHTTPサーバーとOracle WebLogic Serverにデプロイされたアプリケーションとの通信が可能になります。

プロキシ・プラグインは、動的機能が必要なリクエストをOracle WebLogic Serverで処理できるようにすることで、HTTPサーバーのインストールを強化します。つまり、HTTPサーバーがHTMLページなどの静的ページを提供し、Oracle WebLogic ServerがHTTPサーブレットやJavaサーバー・ページ(JSP)などの動的ページを提供する場合に、プロキシ・プラグインを使用するのが一般的です。

Oracle WebLogic Serverは、別のプロセス(場合によっては別のホスト上)で動作している場合があります。エンド・ユーザーには(つまり、ブラウザでは)、HTTPリクエストがOracle WebLogic Serverへ委任されても、これがHTTPサーバーから送信されているように見えます。

Oracle WebLogic Serverプロキシ・プラグインの入手

Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインは、Linuxシステム上のApache Webサーバー2.4.xで使用できます。詳細は、Oracle Fusion Middlewareのサポートされるシステム構成ページからOracle WebLogic Server (14.1.1.0.0)の動作保証マトリックスをダウンロードできます。

プロキシ・プラグインは、Oracle Web Tierのダウンロード・ページまたはSoftware Delivery Cloudから、必要なバイナリ・ファイルおよびヘルパー・ファイルを含む.zipファイルとしてダウンロードできます。

たとえば、プロキシ・プラグイン・ディストリビューションには次のディレクトリが含まれています:

  • lib/mod_wl_24.so (Apache HTTP Server用のOracle WebLogic Serverプロキシ・プラグイン)
  • lib/*.so (ネイティブ・ライブラリ)
  • bin/orapki (orapkiツール)
  • jlib/*.jar (orapki用Javaヘルパー・ライブラリ)

Apache HTTP Server用プロキシ・プラグインのインストールおよび構成の詳細は、「Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインのインストール」および「Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインの構成」を参照してください。

14.1.1.0.0プロキシ・プラグインの機能

Oracle WebLogic Server14.1.1.0プロキシ・プラグインは、HTTP/2のサポートと、HTTP/1.1およびHTTP/2の両方のプロトコルでTLS v1.3を使用するためのサポートを追加しています。

この項には次のトピックが含まれます:

HTTP/2プロトコルのサポート

Linux上のApache HTTP Server用のOracle WebLogic Server 14.1.1.0.0プロキシ・プラグインは、HTTP/2プロトコルをサポートしています。

HTTP/2プロトコルは、バイナリ・フレーム・メカニズムを使用してクライアントとサーバーの間でデータを交換します。すべてのHTTP/2通信は、小さいメッセージおよびフレームに分割され、それぞれがバイナリ形式でエンコードされます。その結果、クライアントとサーバーの両方が新しいバイナリ・エンコーディング・メカニズムを使用して相互に理解する必要があります。HTTP/1.xクライアントはHTTP/2専用のサーバーを理解できず、その逆も同様です。

HTTP/2プロトコルは、14.1.1.0.0以降のプロキシ・プラグインでサポートされています。ただし、Oracle WebLogic Serverプロキシ・プラグインは引き続きHTTP/1.1プロトコルをサポートします。HTTP/1.1はサポートされているデフォルトのプロトコルです。通信にHTTP/2を使用するには、WLProtocolという新しいディレクティブを構成する必要があります。

ノート:

WebSocketは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.htmlstyles.cssの両方を応答するのを待つだけで済みます。これにより、ページのレンダリング時間が短縮されます。

サーバー・プッシュ機能を有効にするには、H2Pushディレクティブを構成し、Webサーバー構成ファイルまたはレスポンスでリンク・ヘッダーを使用します。H2Pushディレクティブの構成については、Apache HTTP ServerドキュメントのH2Pushディレクティブに関する項を参照してください。

Oracle WebLogic Serverプロキシ・プラグインは、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ファイルでH2Pushonに設定します:
-----config section---
H2Push on
----------------------

ノート:

HTTPServeletRequestからのPushBuilder、およびリンク・ヘッダーとともに103アーリー・ヒントを使用することはサポートされていません。

セキュリティの向上

TLSv1.3プロトコルのサポート

Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインは、TLSv1.3プロトコルをサポートします。

プロキシ・プラグインとOracle WebLogic Serverの間の通信に使用するSSLプロトコル・バージョンを指定するには、WebLogicSSLVersionディレクティブを使用します。

TLSv1.3プロトコルのサポートには、次の機能が含まれます:

デフォルト・リストからのTLSv1.1プロトコルの削除

14.1.1.0.0バージョンのOracle WebLogic Serverプロキシ・プラグインでは、サポートされているプロトコルのデフォルト・リストからTLSv1.1プロトコルが削除されます。TLSv1.1プロトコルを使用する場合は、WebLogicSSLVersionディレクティブを使用して明示的に構成に追加する必要があります。TLSv1.1プロトコルを構成すると、警告メッセージが記録されます。

TLS暗号

いくつかの暗号は14.1.1.0.0で非推奨となり、サポートされている暗号のリストから削除されます。WebサーバーとOracle WebLogic Serverの間のハンドシェイクに非推奨の暗号を使用する場合は、WebLogicSSLCiphersディレクティブを使用して明示的に構成に追加する必要があります。非推奨リストの暗号が使用されると、警告メッセージが生成されます。

  • TLSv1.3のデフォルトの暗号リスト:
    • TLS_AES_256_GCM_SHA384
    • TLS_AES_128_GCM_SHA256
  • TLSv1.2のデフォルトの暗号リスト:
    • ECDHE-RSA-AES256-GCM-SHA384
    • ECDHE-RSA-AES128-GCM-SHA256
    • ECDHE-ECDSA-AES256-GCM-SHA384
    • ECDHE-ECDSA-AES128-GCM-SHA256
  • 14.1.1.0.0の非推奨の暗号のリスト:
    • AES128-GCM-SHA256
    • AES256-GCM-SHA384
    • AES128-SHA256
    • AES256-SHA256
    • AES256-SHA
    • AES128-SHA

以前の12cリリースから継承された機能

新しい機能に加えて、Oracle WebLogic Serverプロキシ・プラグインは、以前の12cリリースの機能も継承しています。

継承される機能には、次のものがあります:
  • Oracle WebLogic Serverプロキシ・プラグインは、TLS1.0 SSLプロトコルのサポートを削除しました。したがって、SSL通信用にTLS1.0 SSLプロトコルを構成すると、プロキシ・プラグインはOracle WebLogic Serverへの接続に失敗します。
  • プロキシ・プラグインは、MD5署名証明書を安全でないとみなします。したがって、これらの証明書はデフォルトで無効になっています。SSLを使用してOracle WebLogic Serverに接続している場合、およびMD5で署名された証明書がウォレットに含まれている場合は、SHA-2署名付き証明書で置き換えます。そうしないと、サーバーは起動に失敗します。MD5署名付き証明書の詳細は、「MD5アルゴリズムを使用して署名された証明書の置換」を参照してください。
  • プロキシ・プラグインは、mod_wl_24.soプロキシ・プラグイン・モジュールを介してApache HTTP Server 2.4.x Webサーバーをサポートします。そのため、Apache HTTP Server 2.4.xを使用してmod_wl_24.soモジュールをロードする必要があります。これは通常、Apache HTTP Serverの構成ファイルを編集することによって行われます。
  • プロキシ・プラグインでは、mod_wl.so Oracle WebLogic Serverモジュールを介したApache HTTP Server 2.2.xはサポートされていません。したがって、このモジュールはプロキシ・プラグインのディストリビューションから削除されました。
  • Oracle WebLogic Server 12.1.2では、WebSocketアプリケーションのデプロイがサポートされます。Apache HTTP Server 2.4.x用Oracle WebLogic Server 12.2.1.xプロキシ・プラグインは、WebSocket接続アップグレード・リクエストを処理し、Oracle WebLogic Server 12.1.2以降でホストされているWebSocketアプリケーションに効果的にプロキシできるようになりました。「WebSocketプロキシ構成について」を参照してください。
  • プロキシ・プラグインには、次のOracle WebLogic Serverプロキシ・プラグイン構成パラメータが含まれるようになりました:
    • WLMaxWebSocketClients: 任意の時点でアクティブなWebSocket接続の数を制限します。デフォルト値はMaxClients(またはMaxRequestWorkers)の半分です。
    • WebLogicSSLVersion: Oracle WebLogic Serverプロキシ・プラグインとWebLogic管理対象サーバー/クラスタの間でHTTPSリクエストを通信する際に使用するSSLプロトコル・バージョンを選択します。
  • プロキシ・プラグインは、リクエストをバックエンドOracle WebLogic ServerにプロキシするOracle WebLogic Serverプロキシ・プラグインのパフォーマンスのモニターをサポートします。「Oracle WebLogic Serverプロキシ・プラグインのDMSメトリックの理解」を参照してください。
  • Apache HTTP Server Webサーバーのプロキシ・プラグインでは、デバッグ情報が各Webサーバーのエラー・ログ・ファイルに記録されます。したがって、デバッグ・ログに固有のプロキシ・プラグイン・パラメータ(DebugおよびWLLogFile)は非推奨になりました。
  • プロキシ・プラグインでは、プラグインからOracle WebLogic Serverへの接続のプールを使用してパフォーマンスを向上させます。プロキシ・プラグインは、同じプロキシ・プラグインからの後続のリクエストに対して同じ接続を再利用することで、プロキシ・プラグインとOracle WebLogic Serverの間のHTTP 1.1キープ・アライブ接続を実装します。接続は、20秒(またはユーザー定義の時間)が経過してもアクティブにならない場合は閉じられます。「KeepAliveEnabled」を参照してください。

    ノート:

    Webサーバーはクライアント接続を管理します。
  • プロキシ・プラグインは、指定した構成に基づいてOracle WebLogic Serverにリクエストをプロキシします。
    • リクエストのURL (またはURLの一部)に基づいて、リクエストをプロキシできます。これをパスによるプロキシと呼びます。
    • リクエストされたファイルのMIMEタイプに基づいてリクエストをプロキシすることもでき、これをファイル拡張子によるプロキシと呼びます。

    両方の方法を有効にすることもできます。両方の方法を有効にし、リクエストが両方の条件に一致した場合は、そのリクエストはパスによってプロキシされます。

    また、これらの各リクエスト・タイプに、プロキシ・プラグインのその他の動作を定義するその他のパラメータも指定できます。