Sun Java System Application Server 9.1 高可用性 (HA) 管理ガイド

第 4 章 負荷分散のための Web Server の設定

この章では、Application Server 9.1 および GlassFish v2 で使用可能なロードバランサプラグインでサポートされている Web サーバーの設定方法について説明します。Application Server 9.1 で使用可能なロードバランサプラグインは、次の Web サーバーをサポートしています。


注 –

GlassFish v2 は Sun Java System Web Server (バージョン 6.1 および 7.0) のみをサポートしています。GlassFish v2 でロードバランサプラグインを使用するには、ロードバランサプラグインを手動でインストールおよび設定する必要があります。GlassFish v2 でのロードバランサプラグインのインストールについては、『Sun Java System Application Server 9.1 Installation Guide』の第 1 章「Installing Application Server Software」を参照してください。


ロードバランサプラグインのインストールプログラムは Application Server 9.1 のインストールプログラムの一部であり、Web サーバーの設定ファイルにいくつかの変更を行います。これらの変更内容は、使用している Web サーバーによって異なります。また、一部の Web サーバーについては、ロードバランサを適切に動作させるために手動で設定を行う必要があります。


注 –

サポート対象の Web サーバーが動作しているマシン上で、ロードバランサプラグインを Sun Java System Application Server 9.1 とともに、または個別にインストールすることができます。インストール手順の詳細については、『Sun Java System Application Server 9.1 Installation Guide』の第 1 章「Installing Application Server Software」を参照してください。


Sun Java System Web Server の設定

Sun Java System Web Server では、Sun Java System Application Server 9.1 のインストールウィザードを使用してロードバランサプラグインをインストールするとき、すべての必要な設定がインストールウィザードによって自動的に行われます。手動での設定は必要ありません。Application Server 9.1 に付属のロードバランサプラグインは、次のバージョンの Sun Java System Web Server をサポートしています。

ただし、GlassFish v2 を使用している場合は、Application Server ロードバランサプラグインを http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/aslb-9.1-MS4-b7.jar から別個にダウンロードし、そのプラグインの設定時に手動でいくつかの変更を行う必要があります。GlassFish v2 用プラグインのインストールと設定の詳細な手順については、『Sun Java System Application Server 9.1 Installation Guide』「To Install the Load Balancing Plug-in (standalone)」を参照してください。

ProcedureSun Java System Web Server を設定する

始める前に

注 –

次の手順は、Application Server 9.1 のインストールプログラムによって自動的に実行されます。ただし、GlassFish v2 を使用している場合は、これらの手順を手動で実行する必要があります。


  1. Web サーバーインスタンスの magnus.conf ファイルに、次の行を追加します。

    ##BEGIN EE LB Plug-in Parameters
    Init fn="load-modules"
    shlib="web-server-install-dir/plugins/lbplugin/bin/libpassthrough.so"
    funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
    Init fn="init-passthrough"
    ##END EE LB Plug-in Parameters=
  2. まだ存在しない場合、次の行を追加します。

    Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
  3. ファイル web-server-install-dir/config/obj.conf で、文字列 nametrans が最初に出現する箇所の前に、次の内容を 1 行で挿入します。

    Nametrans fn="name-trans-passthrough" name="lbplugin"
    config-file="web-server-install-dir/config/loadbalancer.xml"

    obj.conf ファイル内での NameTrans エントリの表示順序は非常に重要です。インストーラは NameTrans エントリを正しい場所に配置しますが、ユーザーが別の目的で obj.conf を編集している場合には、このエントリの順序を正しく保持する必要があります。特に、ロードバランサ情報は、document-root 関数の前に配置する必要があります。obj.conf ファイルの詳細については、『Sun Java System Web Server 7.0 Administrator’s Configuration File Reference』を参照してください。

  4. ファイル web-server-install-dir/config/obj.conf に次の行を追加します。

    <Object name = "lbplugin"> 
    ObjectType fn="force-type" type="magnus-internal/lbplugin"
    PathCheck fn="deny-existence" path="*/WEB-INF/*"
    Service type="magnus-internal/lbplugin" fn="service-passthrough"
    Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
    </Object>
  5. web-server-install-dir/start スクリプトを編集し、app-server-install-dir/lib/lbplugin/lib が含まれるように LD_LIBRARY_PATH の値を更新します。

    app-server-install-dir/lib/lbplugin/lib ディレクトリには、ロードバランサプラグインに必要なバイナリが含まれています。

  6. (省略可能) 新しいDAS ベースのロードバランサ管理を行う場合は、SSL を使用するように Web サーバーを設定します。

    Web Server 6.1 での詳細な手順については、「Sun Java System Web Server 6.1 用に SSL モードでロードバランサを設定する」を参照してください。

    Web Server 7 での詳細な手順については、「SSL モードでの Web Server 7 用ロードバランサの設定」を参照してください。

  7. Web サーバーがまだ動作していない場合、Web サーバーを起動します。

自動適用を使用するための Sun Java System Web Server の設定

Application Server 9.1 で提供される自動適用は、ロードバランサの設定を Web サーバーの構成ディレクトリにネットワーク経由で自動的に送信する機能です。この機能の詳細については、「自動適用」を参照してください。以下の手順では、この機能を使用するために Sun Java System Web Server (バージョン 6 および 7) を設定する方法を説明します。

ProcedureSun Java System Web Server 6.1 用に SSL モードでロードバランサを設定する


注 –

この節の手順は、ロードバランサプラグインの自動適用機能を使用する場合にのみ実行する必要があります。この機能は、ロードバランサプラグインの設定を Web サーバーの構成ディレクトリにネットワーク経由で自動的に送信するために役立ちます。


  1. ブラウザを使用して Web Server の管理コンソールにアクセスし、ログインします。

  2. サーバーインスタンスを選択して「Manage」をクリックします。

  3. 「Security」タブをクリックします。

  4. ユーザー名とパスワードを入力して、信頼データベースを初期化します。これは、certutil コマンドまたは GUI のどちらかを使用して行うことができます。信頼データベースの初期化は、certutil コマンドの次のオプションを使用して実行できます。

    certutil -N -P  "https-instance-name-hostname-" -d
    • certutil から入力を求められたら、キーを暗号化するためのパスワードを入力します。キーの暗号化に使用するパスワードを入力します。このパスワードの長さは少なくとも 8 文字以上にし、アルファベット以外の文字を少なくとも 1 つ以上含めるようにしてください。

    • 新しいパスワードを入力するように求められたら、パスワードを指定します。

  5. 次のコマンドを使用して、サンプルのローカル認証局 (CA) を作成します。

    certutil -S -P "https-boqueron.virkki.com-boqueron-" 
    -d . -n SelfCA -s "CN=Self CA,OU=virkki.com,C=US" 
    -x -t "TC,TC,TC" -m 101 -v 99 -5
    1. 証明書の種類 (0 〜 7) を入力するように求められたら、SSL CA を表す「5」を入力します。プロンプトがもう一度表示されたら、「9」を指定します。

    2. 「Is this a critical extension [y/n]?」(これは重要な拡張ですか) という質問が表示されたら、「y」(はい) を指定します。

  6. 前の手順で作成したサンプル CA を使用して、証明書を生成します。

    certutil -S -P "https-instance-name-hostname-"
    -d . -n MyServerCert -s "CN=boqueron.virkki.com,C=US"
    -c SelfCA -t "u,u,u" -m 102 -v 99 -5
    1. 証明書の種類 (0 〜 7) を入力するように求められたら、SSL サーバーを表す「1」を入力します。プロンプトがもう一度表示されたら、「9」を指定します。

    2. 「Is this a critical extension [y/n]?」(これは重要な拡張ですか) という質問が表示されたら、「y」(はい) を指定します。

  7. 次の手順の説明に従って、HTTPS リスナーを作成します。

    1. Web サーバーの管理サーバーにログオンします。

    2. サーバーを選択して「Manage」をクリックします。

    3. 「Add Listen Socket」をクリックします。「Add Listen Socket」ページで、次の手順を実行します。

      1. ポート番号を指定します。

      2. 「Server Name」で、サーバーの完全指定ドメイン名 (FQDN) が指定されていることを確認します。たとえば、ホスト名が machine1 でドメイン名が server.example.com である場合、FQDN は machine1.server.example.com になります。

      3. 「Security」ドロップダウンリストから「Enabled」を選択します。

      4. 「OK」をクリックします。

    4. 「Edit Listen Sockets」ページに移動し、前の手順で作成した「Listen Socket」を選択します。

    5. 「Listen Socket」ページで、「サーバー証明書」の名前が手順 6 で指定した証明書の名前と同じであるかどうか確認します。

ProcedureSun Java System Web Server 6.1 用の DAS 証明書をエクスポートおよびインポートする

  1. Application Server 9.1 を使用している場合、次のコマンドを実行して DAS 証明書をエクスポートします。

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o sjsas.p12-W
    <file password> -K <master password> -n s1as
    • GlassFish v2 を使用している場合は、次のコマンドを使用して DAS 証明書をエクスポートする必要があります。

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      ここで、<GLASSFISH_HOME> は Application Server のインストールディレクトリ、<DOMAIN_NAME> は証明書のエクスポート元のドメインを示します。

    • 証明書ファイルを Web サーバーの構成ディレクトリにコピーします。

  2. Application Server 9.1 を使用している場合、次のコマンドを使用して、DAS 証明書を Web Server インスタンスにインポートします。

    <webserver_install_dir>/bin/https/admin/bin/pk12util-i sjsas.p12 -d 
    <webserver_install_dir>/alias -W<file password> -K <webserver security db password> -P
    <instance-name>-<hostname>-
    <webserver_install_dir>/bin/https/admin/bin/certutil -M -n s1as -t "TCu"
    -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

    これらのコマンドにより、Application Server CA が、クライアント証明書およびサーバー証明書の両方に署名するための信頼済み CA になります。

    • GlassFish v2 を使用している場合は、NSS セキュリティーツールの certutil を使用して作成された rfc ファイルから DAS 証明書をインポートします。

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

      次のコマンドを使用することで、この証明書の存在を確認できます。このコマンドは、デフォルトのサーバー証明書を含むその他の CA 証明書とともに s1as 証明書を一覧表示します。コマンドは必ず 1 行で入力してください。

      <WS_INSTALL_ROOT>/bin/certutil -L 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-
  3. obj.conf に次の行が含まれていない場合は、ファイルの末尾に追加してください。Application Server 9.1 を使用している場合、この手順はインストールプログラムによって自動的に実行されます。

    <Object ppath="*lbconfigupdate*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    <Object>
    <Object ppath="*lbgetmonitordata*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    </Object>
  4. 「設定の確認」で説明されている手順を使用することにより、上記の設定を DAS から確認できます。ローカル CA を使用する代わりに、ほかの任意の CA およびサーバー証明書を使用できます。その場合、前の節の手順 5 および 6 は省略できますが、ほかの CA から入手したサーバー証明書をインポートする必要があります。

SSL モードでの Web Server 7 用ロードバランサの設定

  1. 次のコマンドを使用して、Web Server の管理サーバーを起動します。

    webserver-install-dir/admin_server/bin/startserv
  2. 次の手順の説明に従って、HTTPS リスナーを作成します。HTTP リスナーがすでに存在する場合は、次の手順を省略して、「Sun Java System Web Server 7 用の DAS 証明書をエクスポートおよびインポートする」に進むことができます。

    1. Web Server の管理コンソールにログインします。

    2. デフォルト構成を選択します。通常は、デフォルトの構成名はホスト名と同じです。「共通操作」ページからこれを行うには、「構成を選択」リストから構成を選択して「構成を編集」をクリックします。「構成」ページを開き、「構成」テーブル内のデフォルト構成名をクリックする方法もあります。

    3. 「共通操作」ページにいる場合は、「サーバー証明書の要求」をクリックします。「構成」ページにいる場合は、「証明書」ページを開き、「サーバー証明書」テーブルから「要求」ボタンをクリックします。これは、このデフォルト構成に対する自己署名付きサーバー証明書を作成するために必要です。

    4. 「サーバー証明書の要求」ウィンドウで、必要な詳細情報を指定します。

      この作業の間、「*サーバー名 (cn)」に指定する値が、Web サーバーがインストールされているマシンの完全指定ドメイン名 (FQDN) であることを確認してください。たとえば、ホスト名が machine1 でドメイン名が server.example.com である場合、FQDN は machine1.server.example.com になります。デフォルト値が用意されているすべての項目で、デフォルト値を選択します。

      次のコマンドを使用して、自己署名付き証明書を作成することもできます。コマンドは必ず 1 行で入力してください。

      webserver-install-dir/bin/wadm create-selfsigned-cert --user=
      admin-user --server-name=host-name 
      --nickname=ServerCert --token=internal --config=config-name
      
    5. 選択した構成のページに戻ります。

    6. 「HTTP リスナー」ページを開き、「新規」ボタンをクリックします。これは、SSL 対応の HTTP リスナーを作成するための手順です。

    7. 「新規 HTTP リスナー」ウィザードの質問に答える形で、詳細情報を指定します。サーバー名には必ず、前の手順で指定した FQDN を指定してください。「SSL」ボタンを選択し、以前に作成したサーバー証明書を「証明書」リストから選択します。たとえば、cert-machine1.server.example.com を選択します。

      次のコマンドを使用して HTTP リスナーを作成することもできます。各コマンドは必ず 1 行で入力してください。

      webserver-install-dir/bin/wadm create-http-listener 
      --user=admin-user --server-name=host-name 
      --default-virtual-server-name=default-virtual-server-name 
      --listener-port=8090 --config=config-name http-listener-ssl
      webserver-install-dir/bin/wadm set-ssl-prop 
      --user=admin-user --http-listener=http-listener-ssl 
      --config=config-name enabled=true server-cert-nickname=ServerCert
    8. 上記の手順をすべて実行すると、管理コンソールの右上隅に「配備保留中」という警告が表示されます。その警告をクリックし、指示に従って配備を完了します。この手順により、Web サーバーの管理サーバー内の構成ストアに対する変更が Web サーバーインスタンスにコピーされることが保証されます。

ProcedureSun Java System Web Server 7 用の DAS 証明書をエクスポートおよびインポートする

DAS 証明書をエクスポートしてインポートすることにより、DAS を Web Server の信頼済みクライアントにすることができます。DAS 証明書を使用するクライアント認証により、信頼済みクライアントとして DAS のみが Web Server に接続することが保証されます。

  1. 端末ウィンドウを開き、次のコマンドを使用して LD_LIBRARY_PATH を設定します。

    export LD_LIBRARY_PATH=/opt/SUNWappserver/lib
  2. Application Server 9.1 を使用している場合、次のコマンドを実行して DAS 証明書をエクスポートします。DAS 証明書は、クライアント証明書およびサーバー証明書の両方として機能します。

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o s1as.p12 -W
    <s1as.pk12-file-password> -K <master password> -n s1as
    • GlassFish v2 を使用している場合は、Java SE 5.0 セキュリティーツールの keytool を使用し、別名「s1as」を名前に指定して DAS 証明書をエクスポートします。この作業の間、Internet RFC 1421 標準で定義されている印刷可能なエンコーディング形式で証明書をエクスポートするには、-rfc オプションを選択します。

      コマンド行からは、次のコマンドを使用して DAS 証明書をエクスポートできます。

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      ここで、<GLASSFISH_HOME> は Application Server のインストールディレクトリ、<DOMAIN_NAME> は証明書のエクスポート元のドメインを示します。

    • 証明書ファイルを Web サーバーの構成ディレクトリにコピーします。

  3. Application Server 9.1 を使用している場合、DAS 証明書を Web Server インスタンスにインポートし、次のコマンドを使用して証明書の信頼属性を設定します。

    <webserver_install_dir>/bin/pk12util -i <path_to_s1as.pk12-file> 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config 
    -K <webserver security db password> -W <s1as.pk12-file-passwd>
    <webserver_install_dir>/bin/certutil -M -n s1as -t "TCu" 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config

    これらのコマンドにより、Application Server CA が、クライアント証明書およびサーバー証明書の両方に署名するための信頼済み CA になります。

    • GlassFish v2 を使用している場合は、NSS セキュリティーツールの certutil を使用して作成された rfc ファイルから DAS 証明書をインポートします。

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc -d
      <webserver_install_dir>/admin-server/config-store/<CONFIG_NAME>/config

      ここで、<webserver_install_dir> は Web サーバーのインストールディレクトリ、<CONFIG_NAME> はデフォルトの Web サーバーインスタンスに対して作成された構成名を指します。

      次のコマンドを使用することで、この証明書の存在を確認できます。このコマンドは、デフォルトのサーバー証明書を含むその他の CA 証明書とともに s1as 証明書を一覧表示します。必ず、コマンド全体を 1 行で入力してください。

      <webserver_install_dir>/bin/certutil -L -d
      <webserver_install_dir>/admin-server/config-store/
      <DEFAULT_CONFIG_NAME>/config

      この表示は、Web Server の管理コンソールを使用して行うこともできます。証明書をインポートした先の構成 (この場合はデフォルト構成) を選択してから、「証明書」タブを選択します。利用可能なすべての証明書を見るには、「認証局」サブタブを選択します。

  4. GlassFish v2 を使用している場合は、Web Server 7 に対する次の設定変更を行います。Application Server 9.1 を使用している場合は、次の手順を省略できます。

    1. <WS_INSTALL_ROOT>/admin-server/config-store/<DEFAULT_CONFIG_NAME>/config/ にある obj.conf ファイルに、次の行を追加します。これらの行を入力するときは、末尾にスペースを入れないようにしてください。

       <Object ppath="*lbconfigupdate*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
      <Object ppath="*lbgetmonitordata*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
  5. 構成を配備します。前の手順で示した一連の変更を行なっている間、管理コンソールによりこの構成が配備対象としてマークされます。

    1. Web Server の管理コンソールで、「配備保留中」のアイコンを選択します。次のように、CLI ユーティリティー wadm を使用してこの構成を配備することもできます。

      <webserver_install_dir>/bin/wadm deploy-config --user=<admin> <DEFAULT_CONFIG_NAME>
  6. GlassFish DAS からこの設定をテストして、設定された HTTP ロードバランサとの通信が SSL 経由で行われているかどうかを確認します。詳細については、「設定の確認」を参照してください。

Apache Web Server の使用

Application Server 9.1 に付属のロードバランサプラグインは、Apache Web Server 2.0.x をサポートしています。Apache Web Server を使用するには、ロードバランサプラグインのインストールの前後に、特定の設定手順を実行する必要があります。また、ロードバランサプラグインのインストールによっても、Apache Web Server に追加の変更が加えられます。プラグインをインストールしてから、追加の設定手順を実行する必要があります。


注 –

--with-mpm=worker オプションを使用してコンパイルした場合、Apache 2 は動作をマルチスレッド化します。


Apache Web Server を使用するための要件

Apache Web Server を使用するには、インストール環境が最小要件を満たしている必要があります。

Apache では、ロードバランサプラグインに次のものが必要です。

ソフトウェアソースは、http://www.sunfreeware.com で入手できます。

さらに、Apache をコンパイルする前に、次の操作をしてください。


注 –

gcc 以外の C 言語のコンパイラを使用するには、PATH 環境変数内でその C 言語のコンパイラと make ユーティリティーのパスを設定します。


Apache Web Server パッチの適用

Apache 用ロードバランサプラグインをインストールする前に、Apache Web Server の問題 12355 を修正するパッチを適用します。この問題の詳細については、http://issues.apache.org/bugzilla/show_bug.cgi?id=12355 を参照してください。このパッチは、自動適用機能が正常に機能するために必要です。パッチを適用するには、次の手順を実行します。

  1. http-2.0.59.tar を展開し、httpd-2.0.59 ディレクトリに移動します。

  2. http://issues.apache.org/bugzilla/attachment.cgi?id=16495 からパッチをダウンロードし、12355.diff のような名前のファイルとしてパッチを保存します。

  3. httpd-2.0.59/modules/ssl ディレクトリから、次のコマンドを実行します。

    patch < 12355.diff

ロードバランサプラグインをインストールする前の Apache の設定

Apache ソースをコンパイルし、SSL で動作するようにビルドする必要があります。この節では、ロードバランサプラグインが実行されるように Apache Web Server を正常にコンパイルするために必要な最小要件と手順の概要について説明します。これらの要件と手順は、ソフトウェアの Solaris および Linux バージョンにのみ適用されます。Apache の Windows バージョンについては、Apache の Web サイトを参照してください。


注 –

ここで説明する手順は、http://httpd.apache.org/docs に示されている手順から抜粋したものです。SSL 対応の Apache の詳細なインストール方法については、この Web サイトを参照してください。


ProcedureSSL 対応の Apache をインストールする

始める前に

Apache ソフトウェアがすでにダウンロードされ、圧縮解除されている必要があります。

  1. OpenSSL ソースを http://openssl.org からダウンロードし、展開します。

  2. OpenSSL をコンパイルしてビルドします。

    完全なインストール手順については、OpenSSL を圧縮解除したディレクトリにある INSTALL という名前のファイルを参照してください。このファイルには、OpenSSL をユーザー指定の場所にインストールする方法に関する情報が含まれています。

    OpenSSL の詳細については、http://www.openssl.org/を参照してください。

  3. Apache をダウンロードし、展開します。

    Apache は http://httpd.apache.org から入手できます。

  4. Apache をコンパイルしてビルドします。ソースツリーを設定します。

    1. cd http-2.0_x.

    2. 次のコマンドを実行します。

      ./configure --with-ssl= OpenSSL-install-path --prefix= Apache-install-path --enable-ssl --enable-so

      このコマンドの中で、x は Apache のバージョン番号、open-ssl-install-path は OpenSSL がインストールされているディレクトリへの絶対パス、および Apache-install-path は Apache をインストールするディレクトリです。

      Apache 2 サーバーが HTTPS 要求を受け入れる場合、--enable-ssl --enable-so オプションを使う必要があるだけです。

  5. Linux 2.1 上の Apache の場合は、コンパイルの前に次の手順を実行します。

    1. src/MakeFile を開き、自動的に生成されるセクションの最後を見つけます。

    2. 自動的に生成されるセクションのあとの最初の 4 行のあとに、次の行を追加します。

      LIBS+= -licuuc -licui18n -lnspr4 -lpthread -lxerces-c 
      -lsupport -lnsprwrap -lns-httpd40
      LDFLAGS+= -L/application-server-install-dir/lib -L/opt/sun/private/lib

      -L/opt/sun/private/lib は、Application Server を Java Enterprise System インストールの一部としてインストールした場合にのみ必要であることに注意してください。

      次に例を示します。

      ## (End of automatically generated section)
      ## 
      CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
      LIBS=$(EXTRA_LIBS) $(LIBS1)
      INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
      LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
      "LIBS+= -licuuc -licui18n -lnspr4 -lpthread 
      -lxerces-c -lsupport -lnsprwrap -lns-httpd40
      LDFLAGS+= -L/application-server-install-dir /lib -L/opt/sun/private/lib
    3. 環境変数 LD_LIBRARY_PATH を設定します。

      スタンドアロンのインストールでは、これを Application Server に次のように設定します。as-install/lib

      Java Enterprise System インストールでは、これを Application Server に次のように設定します。as-install/lib:opt/sun/private/lib

      Solaris 9 を使用している場合、LD_LIBRARY_PATH/usr/local/lib を追加します。

  6. 使用しているバージョンのインストール手順で説明されている方法で、Apache をコンパイルします。

    詳細については、http://httpd.apache.org/を参照してください。

    一般的な手順は次のとおりです。

    1. make

    2. make install

  7. Apache の ssl.conf および httpd.conf ファイル内に、ユーザーの環境に対応する正しい値が格納されていることを確認します。

    • ssl.conf では、VirtualHost default:port に対して、デフォルトのホスト名とポートを、Apache がインストールされているローカルシステムのホスト名とサーバーのポート番号に置き換えます。

      この変更を行わないと、ロードバランサは機能しません。Solaris Apache が起動しない可能性があり、Linux では HTTPS 要求が機能しない可能性があります。

    • ssl.conf では、ServerName www.example.com:443www.example.com を、Apache がインストールされているローカルシステムのホスト名に置き換えます。

      この変更を行わないと、セキュリティー証明書がインストールされている場合に Apache を起動すると次の警告が表示されます。


      [warn] RSA server certificate CommonName (CN) 
      hostname does NOT match server name!

      Apache に対する証明書のインストールについては、「Apache のセキュリティー証明書を作成する」を参照してください。

    • httpd.conf では、ServerName www.example.com:80 に対して、www.example.com を Apache がインストールされているローカルシステムのホスト名に置き換えます。

      この変更を行わないと、Apache を起動したときに、システムがサーバーの完全修飾ドメイン名を特定できなかったことと、重複する VirtualHost エントリが存在することを示す警告が表示されます。

  8. Apache ユーザーが、apache-install-location/conf/ ディレクトリとそのディレクトリ内のファイルに対する必要なアクセス許可を持っていることを確認します。

    Apache ユーザーとは、その配下で Apache サーバーが要求に応答する UNIX ユーザーのことです。このユーザーはファイル httpd.conf で定義されます。

    root ユーザーとして Apache をインストールした場合は、apache-install-location/conf/httpd.conf 内の、Apache ユーザーおよびグループの設定に関する注意事項に目を通します。


    注 –

    ユーザーおよびグループの設定が、このディレクトリに対するセキュリティー要件を満たしていることを確認します。たとえば、このディレクトリへのアクセスを制限するには、同じユーザーグループにディレクトリの所有者として Apache ユーザーを追加します。


    1. 自動適用機能が正常に動作することを保証するには、apache-install-location/conf/ ディレクトリに対する読み取り、書き込み、および実行のアクセス権を Apache ユーザーに付与します。

      • Apache ユーザーがこのディレクトリの所有者と同じグループに属している場合は、モードを 775 に変更します。

      • Apache ユーザーがこのディレクトリの所有者と異なるグループに属している場合は、モードを 777 に変更します。

    2. Apache の起動時にロードバランサプラグインが初期化されることを保証するには、次のファイルに対する読み取りおよび書き込みアクセス権を Apache ユーザーに付与します。

      • apache-install-location/conf/loadbalancer.xml

      • apache-install-location/conf/sun-loadbalancer_1_2.dtd

DAS 証明書のエクスポートとインポート

次のコマンドを使用して、DAS 証明書を手動でエクスポートする必要があります。

appserver-install-dir/lib/upgrade/certutil -L -d appserver-instance-dir/config -n s1as -a -o sjsas.crt

この証明書は、ロードバランサプラグインのインストール時に必要になります。

Application Server 9.1 のインストールプログラムは、次のタスクをユーザーに代わって実行します。

ロードバランサプラグインインストーラによって加えられる変更

ロードバランサプラグインのインストールプログラムは、必要なファイルを、Web サーバーのルートディレクトリ内の modules ディレクトリに展開します。

インストールプログラムは、Web サーバーインスタンスの httpd.conf ファイルに次のエントリを追加します。

##BEGIN EE LB Plugin Parameters
LoadModule apachelbplugin_module modules/mod_loadbalancer.so
#AddModule mod_apachelbplugin.cpp
<IfModule mod_apachelbplugin.cpp> 
  config-file webserver-instance/httpd/conf/loadbalancer.xml
  locale en
</IfModule>
<VirtualHost machine-ip-address>
  DocumentRoot "webserver-instance/httpd/htdocs"
  ServerName server-name
</VirtualHost>
##END EE LB Plugin Parameters

ロードバランサプラグインをインストールしたあとの Apache の設定

Apache Web Server は、ロードバランサプラグインと連動するために正しいセキュリティーファイルを保持している必要があります。ロードバランサは、これらのセキュリティーデータベースファイルを必要とする NSS (Network Security Service) ライブラリに依存しています。これらのセキュリティーデータベースファイルを Application Server から取得する必要があるため、Application Server のインストールは、Web Server によってアクセス可能な場所で実行される必要があります。

ロードバランサと連動するために Apache セキュリティーファイルを設定するには、次の手順を実行します。

Apache-install-dir/bin/apachectl スクリプト内の LD_LIBRARY_PATH に、/usr/lib/mps を追加します。

ProcedureApache のセキュリティー証明書を作成する

次の手順は、Apache で HTTPS 要求をサポートするために必要となるものです。

Apache でのセキュリティー証明書の設定については、http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html および http://www.modssl.org/docs/2.8/ssl_faq.html の手順を参照してください。次の手順は、これらの Web サイトから抜粋したものです。

  1. 次の環境変数を設定します。

    OPENSSL_CONF=OpenSSL-installation-directory/apps/openssl.cnf

  2. 次のコマンドを実行して、サーバー証明書とキーを作成します。

    openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365

    共通名を求められたら、Apache を実行する予定のホスト名を入力します。その他のすべてのプロンプトに対しては、環境ごとの特定の要件を満たす値を入力してください。

    このコマンドによって newreq.pem が作成されます。

  3. openssl コマンドを実行した場所から、新しく作成した newreq.pem を開きます。

  4. BEGIN CERTIFICATE で始まり END CERTIFICATE で終わる部分の行をすべてコピーして、Apache-install-dir /conf/ssl.crt/server.crt に貼り付けます。次に例を示します。


    -----BEGIN CERTIFICATE-----
    ....
    ...
    -----END CERTIFICATE-----
  5. BEGIN RSA PRIVATE KEY で始まる行から END RSA PRIVATE KEY で終わる行までをコピーして、Apache-install-dir /conf/ssl.key/server.key に貼り付けます。次に例を示します。


    -----BEGIN RSA PRIVATE KEY-----
    ...
    ...
    ...
    -----END RSA PRIVATE KEY-----
  6. Apache-install-dir /conf/ssl.conf 内の変数 SSLCertificateKeyFile および SSLCertificateFile に正しい値が設定されていることを確認します。

  7. ServerName が www.example.com でないことを確認します。ServerName を Apache を実行する実際のホスト名にして、サーバー証明書とキーを作成するときに入力した Common Name と一致させます。

スティッキラウンドロビンを有効にするための httpd.conf パラメータの変更

スティッキラウンドロビンを機能させるためには、httpd.conf ファイル内の prefork MPM セクション下で、パラメータ StartServers および maxclients の値が 1 に設定されていることを確認します。このように設定されていないと、新しいセッション要求のたびに新しい Apache プロセスが生成され、ロードバランサプラグインが初期化されます。その結果として、要求は新しいインスタンスに送られます。

Solaris および Linux 上での Apache の起動

一般的に、Apache は、Application Server をインストールしたユーザーと同じユーザーで起動します。次の条件にあてはまる場合は、Apache をルートとして起動する必要があります。

Apache を SSL モードで起動するには、次のコマンドのいずれかを使用します。

apachetl startssl または apachetl -k start -DSSL

必要に応じて、Apache サーバーの起動に関する最新情報を Apache の Web サイトで確認してください。

設定の確認

  1. ロードバランサプラグインをインストールします。プラグインの詳細なインストール手順については、『Sun Java System Application Server 9.1 Installation Guide』を参照してください。インストールの間に、DAS 証明書へのパスを指定します。

  2. Application Server 管理コンソールにログインし、新しいクラスタを作成します。新しいクラスタを作成する手順については、管理コンソールのオンラインヘルプを参照してください。

  3. 新しい HTTP ロードバランサを作成します。ロードバランサの作成中、デバイスのホスト名として Web サーバーホストの FQDN を、デバイスポートとしてサーバーの SSL ポートを指定し、前の手順で作成したクラスタをターゲットとして選択します。新しい HTTP ロードバランサを作成するための詳細な手順については、管理コンソールのオンラインヘルプを参照してください。

  4. DAS と Web サーバーの間の通信が正常に機能していることを確認するには、管理コンソールで「HTTP ロードバランサ」ノードに移動して「HTTP ロードバランサ」をクリックします。表示された「ロードバランサデバイス設定」ページで、「テスト接続」ボタンをクリックします。

    ロードバランサの作成中に「変更を自動的に適用」オプションを有効にしなかった場合は、「エクスポート」タブに移動して「今すぐ適用」をクリックすることによって、ロードバランサの設定を手動でエクスポートする必要があります。

  5. テスト接続に失敗した場合は、Application Server ドメインログおよび Web サーバーのログを確認して問題に対処します。また、すべての接続手順が正しく実行されたかどうかを確認します。

Microsoft IIS の使用

ロードバランサプラグインとともに Microsoft Internet Information Services (IIS) を使用するには、以降の各節の手順に従います。

Procedureロードバランサプラグインを使用するように Microsoft IIS を設定する

  1. Internet Services Manager を開きます。

  2. プラグインを有効にする Web サイトを選択します。

    この Web サイトは通常、デフォルトの Web サイトと名付けられます。

  3. この Web サイト上で右クリックして「プロパティー」を選択し、「プロパティー」ノートブックを開きます。

  4. 次の手順に従って、新しい ISAPI フィルタを追加します。

    1. 「ISAPI フィルタ」タブを開きます。

    2. 「追加」をクリックします。

    3. 「フィルタ名」フィールドに、「Application Server」と入力します。

    4. 「実行ファイル」フィールドに、「C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.dll」と入力します。

    5. 「了解」をクリックして、「プロパティー」ノートブックを閉じます。

  5. 新しい仮想ディレクトリを作成および設定します。

    1. デフォルトの Web サイト上で右クリックして「新規」を選択し、「仮想ディレクトリ」を選択します。

      「仮想ディレクトリの作成ウィザード」が開きます。

    2. 「エイリアス」フィールドに、「sun-passthrough」と入力します。

    3. 「ディレクトリ」フィールドに、「C:\Inetpub\wwwroot\sun-passthrough」と入力します。

    4. 「実行パーミッション」チェックボックスにチェックマークを付けます。

      ほかのすべてのパーミッション関連のチェックボックスは、チェックしないでおきます。

    5. 「完了」をクリックします。

  6. システムの PATH 環境変数に、sun-passthrough.dll ファイルのパス、Application Server as-install/bin および Application Server as-install/lib を追加します。

  7. IIS 6.0 ユーザーである場合は、次の手順を実行して、ロードバランサの Web サービス拡張が IIS 6 で実行されるように設定します。

    1. IIS マネージャーで、ローカルコンピュータを展開し、「Web サービス拡張」をクリックします。

    2. 「タスク」ペインで、「新しい Web サービス拡張を追加」を選択します。

    3. 拡張機能の名前に Sun-Passthrough と入力して、「追加」をクリックします。

    4. sun-passthrough.dll へのパスを C:\Inetpub\wwwroot\sun-passthrough と入力します。

    5. 「了解」をクリックします。

    6. 「拡張機能の状態を許可に設定」を選択します。

  8. IIS 6.0 ユーザーの場合、ファイル C:\inetput\wwwroot\sun-passthrough\lb.log を作成し、そのファイル上のグループ IIS_WPG に対して、NTFS の書き込み権および変更権を与えます。

    IIS 6.0 は Worker Process Isolation モードで実行されるため、IIS サーバーはグループ IIS_WPG のセキュリティー権限で実行されます。

  9. IIS ユーザーはすべて、コンピュータを再起動します。

  10. Web サーバー、ロードバランサプラグイン、および Application Server が正常に動作していることを確認します。

    Web ブラウザに以下のように入力して Web アプリケーションのコンテキストルートにアクセスします。http://web-server-name/web-application です。ここで、web-server-name は Web サーバーのホスト名または IP アドレスであり、web-applicationC:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.properties ファイルに一覧表示したコンテキストルートです。


    ヒント –

    ISAPI フィルタの状態は緑色になっているはずです。フィルタの状態を確認するには、Web サイトの「プロパティー」ノートブックを開き、「ISAPI フィルタ」タブをクリックします。状態が緑色になっていない場合は、何らかの HTTP 要求を IIS HTTP ポートに送信してみてください。要求が失敗すれば、正常です。ISAPI フィルタの状態を再確認します。


自動的に設定される sun-passthrough プロパティー

インストーラは、sun-passthrough.properties 内の次のプロパティーを自動的に設定します。デフォルト値は変更可能です。

プロパティー 

定義 

デフォルト値 

lb-config-file

ロードバランサ設定ファイルへのパス 

IIS-www-root\sun-passthrough\loadbalancer.xml

log-file

ロードバランサログファイルへのパス 

IIS-www-root\sun-passthrough\lb.log

log-level

Web サーバーのログレベル 

INFO 


注 –

Application Server 9.1 の自動適用機能は現時点で、IIS との組み合わせではサポートされていません。