Sun GlassFish Enterprise Server 2.1 高可用性 (HA) 管理ガイド

第 5 章 HTTP 負荷分散のための Web サーバーの設定

この章では、HTTP ロードバランサプラグインでサポートされる Web サーバーを設定する方法について説明します。HTTP ロードバランサプラグインは次の Web サーバーをサポートします。


注 –

HTTP ロードバランサプラグインは、64 ビットモードで動作する Web サーバーをサポートしません。


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


注 –

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


Sun Web サーバー の設定

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

ただし、GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/ からロードバランサプラグインをダウンロードして、手動で設定を変更する必要があります。プラグインのインストールおよび設定方法については、『Sun GlassFish Enterprise Server 2.1 Installation Guide』を参照してください。

ProcedureSun Web サーバー を設定する

始める前に

注 –

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


  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 ファイルの詳細については、docs.sun.com で『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 Web サーバー 6.1 用に SSL モードで HTTP ロードバランサを設定する」を参照してください。

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

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

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

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

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


注 –

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


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

  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 "CT,CT,CT" 
    -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. 「設定の変更」>「リスナーソケットを編集」をクリックして、現在の HTTP リスナーソケットを編集します。セキュリティーを有効にして、前の手順で作成して証明書を選択します。

    GUI を使用しない場合は、エントリを「タグを変更して、security の値を true に設定します」と読み替えてください。追加する本体の内容と終了タグを含むように、タグを変更する必要があります。タグを追加するときは、キャリッジリターンを必ず削除してください。

    LS id="ls1" port="80" servername="$DEPLOY-INSTANCE" 
    defaultvs="https-$DEPLOY-INSTANCE" ip="any" security="true" 
    acceptorthreads="1" blocking="false"> 
    <SSLPARAMS servercertnickname="$HOST-DOMAIN" ssl2="off"
    ssl2ciphers="-rc4,-rc 4export,-rc2,-rc2export,-desede3,-des" 
    ssl3="on"
    tls="on"
    ssl3tlsciphers="-rsa_rc4_128_sha,+rsa_rc4_128_md5,-rsa_rc4_56_sha,-rsa_rc4_40_md5
    +rsa_3des_sha,+rsa_des_sha,-rsa_des_56_sha,-rsa_rc2_40_md5,
    -rsa_null_md5,-fortezza,-fortezza_rc4_128_sha,-fortezza_null,
    +fips_3des_sha,-fips_des_sha" tlsrollback="on" 
    clientauth="off"/>
    </LS>

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

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

    <as home>/lib/upgrade/pk12util -d <domain root>/config -o sjsas.p12-W
    <file password> -K <master password> -n s1as
    • GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、次のコマンドを使用して 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. Enterprise Server with HADB バンドルを使用している場合、次のコマンドを使用して、DAS 証明書を Web Server インスタンスにインポートします。

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

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

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

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

      <webserver_home> は、Web サーバーのインストールディレクトリです。

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

      <WS_INSTALL_ROOT>/bin/certutil -L -d
      <WS_INSTALL_ROOT>/admin-server/config-store/
      <DEFAULT_CONFIG_NAME>/config
  3. obj.conf に次の行が含まれていない場合は、ファイルの末尾に追加してください。Enterprise Server with HADB バンドルを使用している場合、この手順はインストールプログラムによって自動的に実行されます。

    <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 から入手したサーバー証明書をインポートする必要があります。

ProcedureSun Web サーバー 7 用に SSL モードで HTTP ロードバランサを設定する

  1. (省略可能) 次のコマンドを使用して、NSS データベースを作成します。NSS データベースが存在している場合は、この手順は必要ありません。コマンドは必ず 1 行で入力してください。

    webserver-install-dir/bin/certutil -N -d 
    /webserver-install-dir/admin-server/config-store/config-name/config

    指示に従って、NSS デーベースのパスワードを入力します。

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

    webserver-install-dir/admin-server/bin/startserv.bat
  3. 次のコマンドを使用して、自己署名証付き明書を作成します。コマンドは必ず 1 行で入力してください。

    webserver-install-dir/bin/wadm create-selfsigned-cert --user=
    admin-user --server-name=host-name 
    --nickname=ServerCert --token=internal --config=config-name
    
  4. 次のコマンドを使用して、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
  5. 次のコマンドを使用して、SSL を有効にして証明書を割り当てます。コマンドは必ず 1 行で入力してください。

    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

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

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

    <as home>/lib/upgrade/pk12util -d <domain root>/config -o sjsa.p12 -W
    <file password> -K <master password> -n s1as
    • GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、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 サーバーの構成ディレクトリにコピーします。

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

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

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

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

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

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

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

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

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

  3. Web Server 7.0 で次のように設定を変更します。

    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>
  4. 構成を配備します。前の手順で示した一連の変更を行なっている間、管理コンソールによりこの構成が配備対象としてマークされます。

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

      <WS_INSTALL_ROOT>/bin/wadm deploy-config-user=<admin><DEFAULT_CONFIG_NAME>

      <admin> は、管理者のユーザー名です。

  5. GlassFish DAS からこの設定をテストして、設定された HTTP ロードバランサとの通信が SSL 経由で行われているかどうかを確認します。詳細については、「設定の確認」を参照してください。

Apache Web Server の使用

ロードバランサプラグインは、Apache Web Server 2.2.x および 2.0.x をサポートします。Apache Web Server を使用するには、ロードバランサプラグインをインストールする前とインストールしたあとに、特定の設定手順を実行する必要があります。また、ロードバランサプラグインのインストールによっても、Apache Web Server に追加の変更が加えられます。プラグインをインストールしてから、追加の設定手順を実行する必要があります。ロードバランサプラグインは、Apache Web Server の 32 ビットバージョンのみをサポートします。

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

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

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

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

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


注 –

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


Apache 2.0.x への Apache Web Server Patch の適用

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

  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

HTTP ロードバランサプラグインをインストールする前の 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 のソースをダウンロードし、展開します。

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

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

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

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

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

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

    1. Apache 2.0.x では、コマンド cd http-2.0_ x を使用します。Apache 2.2.x では、コマンド cd http-2.2_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 オプションを使う必要があるだけです。

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


      注 –

      Apache 2.2 では、--with-included-apr オプションを使用して、バンドル版の Apache Portable Runtime (APR) を構築します。


  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 を設定します。

      スタンドアロンのインストールでは、as-install/lib を追加します。

      Java Enterprise System インストールでは、これを Enterprise 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


    注 –

    Apache 2.2.x では、apache-install-location/conf/httpd.conf ファイルで、Include conf/extra/httpd-vhosts.conf の行をコメント解除します。


DAS 証明書のエクスポート

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

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

この証明書は、ロードバランサプラグインのインストール時に必要になります。ロードバランサプラグインをインストールする前に、必ずこのタスクを実行してください。

インストーラによる Apache Web Server 設定に対する変更

Enterprise Server のインストールプログラムは、ロードバランサプラグインのインストール中に、Apache 設定に対して次の変更を行います。ロードバランサプラグインを手動でインストールするように選択した場合は、これらの手順を手動で実行する必要があります。インストールプログラムは、Web サーバーのルートディレクトリにある modules ディレクトリに、必要なファイルを展開します。


注 –

ロードバランサプラグインをインストールする前に、必ず DAS 証明書をエクスポートしてください。


Apache 2.0.x の場合、インストーラは Web サーバーインスタンスの httpd.conf ファイルに次のエントリを追加します。

##BEGIN EE LB Plugin Parameters
LoadModule apachelbplugin_module modules/mod_loadbalancer.so
#AddModule mod_apache2lbplugin.cpp
<IfModule mod_apache2lbplugin.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 2.2.x の場合、インストーラは Web サーバーインスタンスの httpd.conf ファイルに次のエントリを追加します。

##BEGIN EE LB Plugin Parameters
LoadFile /usr/lib/libCstd.so.1 (For Solaris SPARC only)
LoadModule apachelbplugin_module modules/mod_loadbalancer.so
#AddModule apachelbplugin_module
<IfModule apachelbplugin_module> 
  config-file Apache-install-location/conf/loadbalancer.xml
  locale en
</IfModule>
##END EE LB Plugin Parameters

Apache 2.2.x の場合、インストーラは Web サーバーインスタンスの httpd-vhosts.conf ファイルに次のエントリを追加します。

##BEGIN EE LB Plugin Parameters
<VirtualHost machine-ip-address> 
  ServerName host-name
 DocumentRoot Apache-install-location/htdocs
</VirutalHost>
##END EE LB Plugin Parameters

インストーラによって行われるその他の変更により、使用中の環境で Apache の config-file および ssl-config が正しい値に設定されます。ssl-config ファイルは、Apache 2.0.x の Apache-install-location/conf/ssl.conf または Apache-install-location/conf/extras/httpd-ssl.conf に格納されます。config ファイルは、Apache 2.0.x および Apache 2.2.x の Apache-install-location /conf/httpd.conf に格納されます。変更内容の概要は次のとおりです。

DAS 証明書のインポート

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

serial-number の値は、DAS 証明書ファイルから生成する必要があります。serial-number を生成するには、コマンド keytool -printcert -file sjsas.crt を使用します。このコマンドの出力の小文字をすべて大文字に変更して、serial-number として使用します。このコマンドは、使用しているアプリケーションサーバーの名前も表示します。

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

この節では、Apache Web Server のインストール後に必要な変更を説明します。

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

スティッキラウンドロビン機能を使用するには、Apache 2.2.x の apache-install-location/conf/extra/ httpd-mpm.conf ファイル、または Apache 2.0.x の apache-install-location /conf/httpd.conf ファイルに次の変更を行います。

prefork MPM セクションで、パラメータ StartServers および maxclients の値が 1 に設定されていることを確認します。ほかの値に設定されている場合は、新しいセッション要求ごとに新しい Apache プロセスが生成され、ロードバランサプラグインが初期化されて、要求が同じインスタンスで受信されます。

Apache 2.2.x では、apache-install-location/conf/httpd.conf ファイルの次の行のコメントを解除します。


Include conf/extra/httpd-mpm.conf

ロードバランサを使用するためのセキュリティーファイルの設定

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

ロードバランサが機能するようにセキュリティーファイルを設定する

Apache ユーザーへのアクセス権の付与

Apache ユーザーが、apache-install-location/conf/ ディレクトリとそのディレクトリ内のファイルに対する必要なアクセス許可を持っていることを確認します。Apache ユーザーとは、その配下で Apache サーバーが要求に応答する UNIX ユーザーのことです。このユーザーはファイル httpd.conf で定義されます。root ユーザーとして Apache をインストールした場合は、apache-install-location/conf/httpd.conf 内の、Apache ユーザーおよびグループの設定に関する注意事項に目を通します。


注 –

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


ロードバランサプラグインの初期化

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

自動適用を有効にするディレクトリアクセス権の変更

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

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

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 2.0.x の Apache-install-dir /conf/ssl.conf または Apache 2.2.x の Apa he-install-d r /conf/extra/httpd-ssl.conf で、変数 SSLCertificateKeyFileSSLCertificateFile が正しい値に設定されていることを確認します。

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

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

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

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

Apache 2.0.x では apachectl startssl または apachectl -k start -DSSL。Apache 2.2.x では、apachectl start を使用します。

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

設定の確認

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

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

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

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

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

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

Microsoft IIS の使用

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

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

  1. Internet Services Manager を開きます。

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

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

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

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

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

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

    3. 「フィルタ名」フィールドに、「Enterprise 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 ファイルのパス、Enterprise Server as-install/bin および Enterprise 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 サーバー、ロードバランサプラグイン、および Enterprise Server が正常に動作していることを確認します。

    Web ブラウザに http://web-server-name/web-application と入力して、Web アプリケーションのコンテキストルートにアクセスします。ここで、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


注 –

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