プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic ServerにおけるWebサーバー1.1プラグインの使用
11g リリース1 (11.1.1)
B61009-08
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

4 Apache HTTP Serverプラグインのインストールと構成

この章では、Apache HTTPサーバー・プラグインをインストールして構成する方法を説明します。次の項で構成されます。


注意:

Oracle HTTP ServerからOracle WebLogic Serverにリクエストをプロキシするためには、mod_wl_ohsプラグインを使用します。これはApache HTTPサーバー用のプラグインと似ていますが、別途ダウンロードしてインストールする必要はありません。mod_wl_ohsの構成の詳細は、第2章「Oracle HTTP Server用mod_wl_ohsプラグインの構成」を参照してください。

4.1 Apache HTTPサーバー・プラグインのインストール

第1.2項「バージョン1.1プラグインの入手方法」の説明に従ってApache HTTPサーバー・プラグインをダウンロードした後、それをApache HTTPサーバー・モジュールとしてApache HTTPサーバーのインストール環境にインストールできます。

4.1.1 インストールの前提条件

Apache HTTP Serverプラグインをインストールする前に、次のことを行ってください。

  • 第1.2項「バージョン1.1プラグインの入手方法」の説明に従って、Apache HTTPサーバー・プラグインをダウンロードします。

  • プラグインのzipを解凍する場所(PLUGIN_HOME。たとえば、/home/myhome/weblogic-plugins-1.1/)

  • プラグインのzipディストリビューションをPLUGIN_HOME(たとえば、/home/myhome/weblogic-plugins-1.1/)に解凍します。このディストリビューションには、次のようなファイルが含まれています。

    表4-1 Apache Webサーバー・プラグインのZipに含まれているファイル

    (パス)/ファイル名 説明

    README.txt

    このファイル

    bin/orapki.bat

    Oracleウォレットを構成するためのorapkiツール

    jlib/*.jar

    orapkiヘルパーJavaライブラリ

    lib/mod_wl.so

    WebLogicプロキシ・モジュール

    lib/*.so(.dll)

    ヘルパー・ライブラリ


  • SSLを使用する場合は、JDK 7をインストールします。SSLで使用するためにウォレットや証明書失効リストなどの公開鍵インフラストラクチャ(PKI)要素を管理するorapkiユーティリティを使用するには、JDK 7のインストールが必要です。

  • サポートされているApache HTTPサーバーのインストール環境があることを確認します。


    注意:

    Apache HTTP Server 2.4を使用する場合は、12.1.xプラグインにアップグレードしてください。

    詳細は、次を参照してください。

    http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html.

  • サポートされているバージョンのOracle WebLogic Serverが構成済であり、ターゲット・システム上で実行されていることを確認します。このサーバーはプラグインのzipディストリビューションを解凍したシステム上で実行する必要はないことに注意してください。サポートされているOracle WebLogic Serverのバージョンについては、次を参照してください。

    http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html.

4.1.2 Apache HTTPサーバー・プラグインのインストール

Apache HTTP Serverプラグインは共有オブジェクト(.so)ファイルとして配布されます。

Apache HTTPサーバー・プラグインをインストールするには:

  1. weblogic-plugins-1.1/libフォルダがUNIXシステム上のLD_LIBRARY_PATH(およびWindowsシステム上のPATH)に含まれていることを確認します。含まれていない場合は、Apache HTTPサーバーの起動時にリンケージ・エラーが表示されます。

  2. ダウンロードしたプラグイン・ファイルを解凍した場所で、lib/mod_wl.soを見つけます(たとえば、/home/myhome/weblogic-plugins-1.1/lib/mod_wl.so)。

  3. mod_so.cモジュールが有効になっていることを確認します。

    Apacheで提供されるスクリプトを使用してApache HTTPサーバーをインストールした場合、mod_so.cはすでに有効になっています。UNIX/Linuxプラットフォームで次のコマンドを実行して、mod_so.cが有効になっていることを確認します。

    APACHE_HOME/bin/apachectl -l
    

    (APACHE_HOMEは、Apache HTTPサーバーのインストールが含まれているディレクトリです。)


    注意:

    apachectlコマンドはWindowsプラットフォームでは使用できません。

    このコマンドによって、有効なすべてのモジュールがリスト表示されます。mod_so.cがリストにない場合は、Apache HTTPサーバーを再構築し、次の構成オプションが指定されていることを確認します。

    ...
    --enable-module=so
    ...
    
  4. バックアップとして、 APACHE_HOME/bin/httpd.confファイルのコピーを作成します。

  5. httpd.confファイルを開きます。

  6. Apache 2.2.x用のApache HTTPサーバー・プラグイン・モジュールをインストールするには、次の行を追加します。Windowsでは、.dllファイルを指定します。

    LoadModule weblogic_module /home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
    
  7. 次のコマンドを実行して、httpd.confファイルの構文を確認します。

    • Windows

      APACHE_HOME\bin> apachectl -t
      
    • UNIX/Linux

      > APACHE_HOME/bin/apachectl -t
      

    httpd.confファイルにエラーがある場合はこのコマンドの出力でエラーが表示され、それ以外の場合は次のような結果が戻されます。

    Syntax OK
    

4.2 Apache HTTPサーバー・プラグインの構成

この項では、HTTPトンネリングを有効にし、Oracle WebLogic Serverプラグインのその他のパラメータを使用するため、httpd.confファイルを編集してパスまたはMIMEタイプによってリクエストをプロキシする方法を説明します。

4.2.1 httpd.confファイルの編集

Apache HTTPサーバー・インストールのhttpd.confファイルを編集し、Apache HTTPサーバー・プラグインを構成します。

  1. httpd.confファイルを開きます(まだ開いていない場合)。

  2. MIMEタイプによってリクエストをプロキシするには、次のどちらかを定義するIfModuleブロックを追加します。

    • クラスタリングされていないWebLogic Serverの場合: WebLogicHostおよびWebLogicPortパラメータ

    • WebLogic Serverのクラスタの場合: WebLogicClusterパラメータ

    例:

    <IfModule mod_weblogic.c>
     WebLogicHost myweblogic.example.com
     WebLogicPort 7001
     Debug ALL
     DebugConfigInfo ON
     WLLogFile /tmp/wl-proxy.log 
    </IfModule>
    
  3. MIMEタイプによってリクエストをプロキシするには、MatchExpression行をIfModuleブロックに追加します。MIMEタイプおよびパスによるプロキシの両方を有効にした場合は、パスによるプロキシがMIMEタイプによるプロキシより優先されることに注意してください。

    たとえば、クラスタリングされていないWebLogic Serverに対する次のIfModuleブロックでは、MIMEタイプが.jspであるすべてのファイルがプロキシされます。

    <IfModule mod_weblogic.c>
     WebLogicHost my-weblogic.server.com
     WebLogicPort 7001
     MatchExpression *.jsp
     Debug ALL
     DebugConfigInfo ON
     WLLogFile /tmp/wl-proxy.log 
    </IfModule>
    

    次のように、複数のMatchExpressionsを使用することもできます。

    <IfModule mod_weblogic.c>
     WebLogicHost my-weblogic.server.com
     WebLogicPort 7001
     MatchExpression *.jsp
     MatchExpression *.xyz
     Debug ALL
     DebugConfigInfo ON
     WLLogFile /tmp/wl-proxy.log 
    </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>
    
  4. パスによってリクエストをプロキシするには、LocationブロックおよびSetHandler文を使用します。SetHandlerは、Apache HTTPサーバー・プラグイン・モジュールのハンドラを指定します。たとえば、次のLocationブロックでは、URLに/weblogicが含まれるすべてのリクエストがプロキシされます。

    <Location /weblogic>
    SetHandler weblogic-handler
    PathTrim /weblogic
    </Location>
    

    PathTrimパラメータには、WebLogic Serverインスタンスにリクエストを渡す前にURLの先頭から削除する文字列を指定します(第7.1項「Webサーバー・プラグインの一般パラメータ」を参照)。

  5. PathTrimパラメータは、<Location>タグ内で構成する必要があります。SSLを使用するためにApacheプラグインを構成する際に、次の既知の問題が発生します

    • 次の構成は正しくありません

      <Location /weblogic>
       SetHandler weblogic-handler 
      </Location> 
      
      <IfModule mod_weblogic.c>
       WebLogicHost localhost
       WebLogicPort 7001
       PathTrim /weblogic
      </IfModule> 
      

      次の構成は正しい設定です。

      <Location /weblogic>
       SetHandler weblogic-handler
       PathTrim /weblogic
      </Location>
      
    • WebLogic Server Apacheプラグインの現在の実装では、Apache SSLに関して複数の証明書ファイルの使用はサポートされていません。

  6. オプションで、t3またはIIOPプロトコルおよびweblogic.jarのHTTPトンネリングを有効にして、次のLocationブロックをhttpd.confファイルに追加します。

    <Location /bea_wls_internal/HTTPClnt>
     SetHandler weblogic-handler
    </Location>
    
  7. Apache HTTPサーバー・プラグインの追加パラメータを定義します。

    Apache HTTPサーバー・プラグインは、第7.1項「Webサーバー・プラグインの一般的なパラメータ」にリストされているパラメータを認識します。Apache HTTPサーバー・プラグインの動作を修正するには、次のいずれかのパラメータを定義します。

    • Locationブロック(パスによるプロキシに適用されるパラメータの場合)、または

    • MIMEタイプによるプロキシに適用するパラメータの場合、グローバルまたは仮想ホスト・スコープ

  8. 次のコマンドをUNIX/Linuxプラットフォームで実行してhttpd.confファイルの構文を検証します。

    > APACHE_HOME/bin/apachectl -t
    

    注意:

    apachectlコマンドはWindowsプラットフォームでは使用できません。

    httpd.confファイルにエラーがある場合はこのコマンドの出力でエラーが表示され、それ以外の場合は次のような結果が戻されます。

    Syntax OK
    
  9. Apache HTTPサーバーを起動します。

    • Windows

      APACHE_HOME\bin> httpd -k start
      
    • UNIX/Linux

      > APACHE_HOME/bin/apachectl start
      
  10. ブラウザからhttp://apache-host:apache-port/mywebapp/my.jspにリクエストを送信します。レスポンスを確認します。

4.2.1.1 LocationブロックまたはVirtualHostブロック内へのWebLogicプロパティの配置

IfModuleを使用しないようにした場合は、かわりにWebLogicプロパティを直接Locationブロック内またはVirtualHostブロック内に配置できます。次にLocationおよびVirtualHostブロックの例を示します。

<Location /weblogic>
SetHandler weblogic-handler
WebLogicHost myweblogic.server.com
WebLogicPort 7001
</Location>
 
<Location /weblogic>
SetHandler weblogic-handler
WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
</Location>
 
<VirtualHost apachehost:80>
SetHandler weblogic-handler
WebLogicServer weblogic.server.com
WebLogicPort 7001
</VirtualHost>

4.2.1.2 例: Apacheプラグインの構成

次の例では、バックエンドWebLogic ServerにリクエストをプロキシするようApacheプラグインを簡潔に設定するための基本的な手順を示します。

  1. ${APACHE_HOME}/conf/httpd.confファイルのコピーを作成します。

  2. ファイルを編集し、次のコードを追加します。

    ...   LoadModule weblogic_module /home/myhome/weblogic-plugins-1.1/lib/mod_wl.so
    
      <IfModule mod_weblogic.c>
        WebLogicHost wls-host
        WebLogicPort wls-port
        Debug ALL
        WLLogFile /tmp/wl-proxy.log
      </IfModule>
    
      <Location /mywebapp>
        SetHandler weblogic-handler
      </Location>
      ...
    
  3. 次のコマンドを入力して、LD_LIBRARY_PATHに${PLUGIN_HOME}/libを組み込みます。

     $ export LD_LIBRARY_PATH=/home/myhome/weblogic-plugin-1.1/lib:...
    

    注意:

    libの内容をAPACHE_HOME\libにコピーするか、APACHE_HOME/bin/apachectlを編集してLD_LIBRARY_PATHを更新してもPATHを更新できます。

  4. プロンプトで、次のコマンドを入力してApacheサーバーを起動します。

    $ ${APACHE_HOME}/bin/apachectl start
    
  5. ブラウザからhttp://apache-host:apache-port/mywebapp/my.jspにリクエストを送信し、レスポンスを確認します。

4.2.2 weblogic.confファイルのhttpd.confファイルへのインクルード

別個の構成ファイルを複数保持する場合は、次のようにApache HTTPサーバーのIncludeディレクティブをhttpd.confファイルのIfModuleブロック内で使用することで、httpd.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ファイルが含まれています。

4.2.2.1 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仮想ホストに関するドキュメントを参照)。

  • 環境内に構成されているすべての仮想ホストのログ・ファイルを1つのみにしたい場合は、グローバル・プロパティを使用すれば実現できます。各仮想ホストでDebugWLLogFileおよびWLTempDirプロパティを指定するかわりに、<IfModule>タグで一度に指定できます。

  • httpd.confファイルの例は次のとおりです。

    <IfModule mod_weblogic.c>
     WebLogicCluster johndoe02:8005,johndoe:8006
     Debug ON
     WLLogFile c:/tmp/global_proxy.log 
     WLTempDir "c:/myTemp"
     DebugConfigInfo ON
     KeepAliveEnabled ON
     KeepAliveSecs 15
    </IfModule>
    
    <Location /jurl>
     SetHandler weblogic-handler
     WebLogicCluster agarwalp01:7001
    </Location>
    
    <Location /web>
     SetHandler weblogic-handler
     PathTrim /web
     Debug OFF
     WLLogFile c:/tmp/web_log.log
    </Location>
     
    <Location /foo>
     SetHandler weblogic-handler
     PathTrim /foo
     Debug ERR
     WLLogFile c:/tmp/foo_proxy.log
    </Location>
    
  • /jurl/*に一致するすべてのリクエストではDebug LevelがALLに設定され、ログ・メッセージがc:/tmp/global_proxy.logファイルに記録されます。/web/*に一致するすべてのリクエストではDebug LevelがOFFに設定され、ログ・メッセージは記録されなくなります。/foo/*に一致するすべてのリクエストではDebug LevelがERRに設定され、ログ・メッセージはc:/tmp/foo_proxy.logファイルに記録されます。

  • <Files>ブロックではなくMatchExpression文を使用することをお薦めします。

4.2.2.2 weblogic.conf構成ファイルのサンプル

次のweblogic.confファイルの例をテンプレートとして使用して、ユーザーの環境およびサーバーに合うように変更できます。#で始まる行はコメントです。

例4-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>
####################################################

例4-2の、ファイル名のパターン、HTTPリクエストの転送先となるWebLogic Serverホストおよびその他の様々なパラメータを示すためのMatchExpressionパラメータ構文は、次のとおりです。

MatchExpression [filename pattern] [WebLogicHost=host] | [paramName=value]

最初のMatchExpressionパラメータではファイル名パターン*.jspを指定してから、1つのWebLogicHost名を指定しています。パイプ記号の後に続くparamName=valueの組合せでは、WebLogic Serverで接続リクエストをリスニングするポートを指定し、デバッグ・オプションも有効にします。2番目のMatchExpressionでは、ファイル名パターン*.htmlを指定し、WebLogicClusterホストおよびそのポートを特定しています。パイプ記号の後に続くparamName=valueの組合せでは、クラスタのエラー・ページを指定しています。

例4-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>

例4-3に、WebLogicクラスタを使用しない例を示します。

例4-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>

例4-4に、複数の名前ベースの仮想ホストを構成する例を示します。

例4-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には一意の値を定義する必要があり、そうでない場合は、一部のプラグイン・パラメータが予想どおりに機能しません。

4.2.2.3 Apache HTTPサーバーのhttpd.confファイルのテンプレート

この項には、Apache 2.2のhttpd.confファイルのサンプルが含まれています。このサンプルをテンプレートとして使用し、ご使用の環境およびサーバーに合せて変更できます。#で始まる行はコメントです。

Apache HTTPサーバーでは大文字と小文字が区別されない点に注意してください。

例4-5 Apache 2.2のhttpd.confファイルのサンプル

####################################################
APACHE-HOME/conf/httpd.conf file
####################################################
LoadModule weblogic_module lhome/myhome/weblogic-plugins-1.1/lib/mod_wl.so

<Location /weblogic>
 SetHandler weblogic-handler
 PathTrim /weblogic
 ErrorPage http://myerrorpage1.mydomain.com
</Location>

<Location /servletimages>
 SetHandler weblogic-handler
 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>