この章では、HTTP ロードバランサプラグインでサポートされる Web サーバーを設定する方法について説明します。HTTP ロードバランサプラグインは次の Web サーバーをサポートします。
Sun Web サーバー 6.1 および 7.0 (32 ビット)
Apache Web Server 2.2 および 2.0.x (32 ビット)
Microsoft IIS 5.0 および 6.0 (32 ビット)
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 サーバー では、 のインストールウィザードを使用してロードバランサプラグインをインストールするとき、すべての必要な設定がインストールウィザードによって自動的に行われます。手動での設定は必要ありません。Enterprise Server に付属のロードバランサプラグインは、次のバージョンの Sun Web サーバー をサポートしています。
Sun Web サーバー 6.1
Sun Web サーバー 7.0
ただし、GlassFish v2.1 または HADB バンドルのない Enterprise Server を使用している場合は、http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/ からロードバランサプラグインをダウンロードして、手動で設定を変更する必要があります。プラグインのインストールおよび設定方法については、『Sun GlassFish Enterprise Server 2.1 Installation Guide』を参照してください。
Enterprise Server では、次の手順はインストールプログラムによって自動的に実行されます。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=
まだ存在しない場合、次の行を追加します。
Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
ファイル 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』を参照してください。
ファイル 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>
web-server-install-dir/start スクリプトを編集し、app-server-install-dir/lib/lbplugin/lib が含まれるように LD_LIBRARY_PATH の値を更新します。
app-server-install-dir/lib/lbplugin/lib ディレクトリには、ロードバランサプラグインに必要なバイナリが含まれています。
(省略可能) 新しいDAS ベースのロードバランサ管理を行う場合は、SSL を使用するように Web サーバーを設定します。
Web Server 6.1 での詳細な手順については、「Sun Web サーバー 6.1 用に SSL モードで HTTP ロードバランサを設定する」を参照してください。
Web Server 7 での詳細な手順については「Sun Web サーバー 7 用に SSL モードで HTTP ロードバランサを設定する 」を参照してください。
Web サーバーがまだ動作していない場合、Web サーバーを起動します。
Enterprise Server 9.1 で提供される自動適用は、ロードバランサの設定を Web サーバーの構成ディレクトリにネットワーク経由で自動的に送信する機能です。以下の手順では、この機能を使用するために Sun Java System Web Server (バージョン 6 および 7) を設定する方法を説明します。
この節の手順は、ロードバランサプラグインの自動適用機能を使用する場合にのみ実行する必要があります。この機能は、ロードバランサプラグインの設定を Web サーバーの構成ディレクトリにネットワーク経由で自動的に送信するために役立ちます。
ブラウザを使用して Web Server の管理 GUI にアクセスし、ログインします。
サーバーインスタンスを選択して「Manage」をクリックします。
「Security」タブをクリックします。
ユーザー名とパスワードを入力して、信頼データベースを初期化します。これは、certutil コマンドまたは GUI のどちらかを使用して行うことができます。信頼データベースの初期化は、certutil コマンドの次のオプションを使用して実行できます。
certutil -N -P "https-instance-name-hostname-" -d .
certutil から入力を求められたら、キーを暗号化するためのパスワードを入力します。キーの暗号化に使用するパスワードを入力します。このパスワードの長さは少なくとも 8 文字以上にし、アルファベット以外の文字を少なくとも 1 つ以上含めるようにしてください。
新しいパスワードを入力するように求められたら、パスワードを指定します。
次のコマンドを使用して、サンプルのローカル認証局 (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
前の手順で作成したサンプル 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
「設定の変更」>「リスナーソケットを編集」をクリックして、現在の 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>
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 サーバーの構成ディレクトリにコピーします。
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
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>
「設定の確認」で説明されている手順を使用することにより、上記の設定を DAS から確認できます。ローカル CA を使用する代わりに、ほかの任意の CA およびサーバー証明書を使用できます。その場合、前の節の手順 5 および 6 は省略できますが、ほかの CA から入手したサーバー証明書をインポートする必要があります。
(省略可能) 次のコマンドを使用して、NSS データベースを作成します。NSS データベースが存在している場合は、この手順は必要ありません。コマンドは必ず 1 行で入力してください。
webserver-install-dir/bin/certutil -N -d /webserver-install-dir/admin-server/config-store/config-name/config
指示に従って、NSS デーベースのパスワードを入力します。
次のコマンドを使用して、管理サーバーを起動します。
webserver-install-dir/admin-server/bin/startserv.bat
次のコマンドを使用して、自己署名証付き明書を作成します。コマンドは必ず 1 行で入力してください。
webserver-install-dir/bin/wadm create-selfsigned-cert --user= admin-user --server-name=host-name --nickname=ServerCert --token=internal --config=config-name
次のコマンドを使用して、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
次のコマンドを使用して、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
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 サーバーの構成ディレクトリにコピーします。
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 の管理コンソールを使用して行うこともできます。証明書をインポートした先の構成 (この場合はデフォルト構成) を選択してから、「証明書」タブを選択します。利用可能なすべての証明書を見るには、「認証局」サブタブを選択します。
Web Server 7.0 で次のように設定を変更します。
<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>
構成を配備します。前の手順で示した一連の変更を行なっている間、管理コンソールによりこの構成が配備対象としてマークされます。
GlassFish DAS からこの設定をテストして、設定された HTTP ロードバランサとの通信が SSL 経由で行われているかどうかを確認します。詳細については、「設定の確認」を参照してください。
ロードバランサプラグインは、Apache Web Server 2.2.x および 2.0.x をサポートします。Apache Web Server を使用するには、ロードバランサプラグインをインストールする前とインストールしたあとに、特定の設定手順を実行する必要があります。また、ロードバランサプラグインのインストールによっても、Apache Web Server に追加の変更が加えられます。プラグインをインストールしてから、追加の設定手順を実行する必要があります。ロードバランサプラグインは、Apache Web Server の 32 ビットバージョンのみをサポートします。
Apache Web Server を使用するには、インストール環境が最小要件を満たしている必要があります。
Apache では、ロードバランサプラグインに次のものが必要です。
openssl-0.9.7e (ソース)
Apache 2.2.x では httpd-2.2.10 (ソース)、Apache 2.0.x では httpd-2.0.59 (ソース)
gcc-3.3-sol9-sparc-local パッケージ (Solaris 9 SPARC の場合)
gcc-3.3-sol9-intel-local パッケージ (Solaris 9 x86 の場合)
プリインストールされた gcc (Solaris 10 の場合)
flex-2.5.4a-sol9-sparc-local パッケージ (Solaris 9 SPARC の場合)
flex-2.5.4a-sol9-intel-local パッケージ (Solaris 9 x86 の場合)
プリインストールされた flex (Solaris 10 の場合)
ソフトウェアのソースは、http://www.sunfreeware.comから入手できます。
さらに、Apache をコンパイルする前に、次の操作をしてください。
Linux プラットフォームでは、同じマシンに Sun GlassFish Enterprise Server をインストールします。
Solaris 9 オペレーティングシステムでは、pkgadd を使用して gcc と flex をインストールします。pkgadd を使用するには、ルートアクセスが必要です。
Solaris 9 オペレーティングシステムでは、gcc バージョン 3.3 と make が PATH に含まれており、flex がインストールされていることを確認してください。
Solaris 10 オペレーティングシステムでは、OpenSSL 用の make を実行する前に、Solaris SPARC の場合は /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools に、Solaris x86 の場合は /usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools に格納されている mkheaders を実行します。
Red Hat Enterprise Unix Advanced Server 2.1 で gcc を使用している場合は、gcc 3.0 より新しいバージョンを使用する必要があります。
gcc 以外の C 言語のコンパイラを使用するには、PATH 環境変数内でその C 言語のコンパイラと make ユーティリティーのパスを設定します。
Apache 2.0.x にロードバランサプラグインをインストールする前に、Apache Web Server の問題 12355 に関するパッチを適用します。この問題の詳細については、http://issues.apache.org/bugzilla/show_bug.cgi?id=12355 を参照してください。このパッチは、Apache 2.0.x で自動適用機能を使用するために必要です。パッチを適用するには、次の手順に従います。
http-2.0.59.tar を展開し、httpd-2.0.59 ディレクトリに移動します。
http://issues.apache.org/bugzilla/attachment.cgi?id=16495 からパッチをダウンロードして、12355.diff などのファイル名で保存します。
httpd-2.0.59/modules/ssl ディレクトリから、次のコマンドを実行します。
patch < 12355.diff
Apache ソースをコンパイルし、SSL で動作するようにビルドする必要があります。この節では、ロードバランサプラグインが実行されるように Apache Web Server を正常にコンパイルするために必要な最小要件と手順の概要について説明します。これらの要件と手順は、ソフトウェアの Solaris および Linux バージョンにのみ適用されます。Apache の Windows バージョンについては、Apache の Web サイトを参照してください。
ここで説明する手順は、http://httpd.apache.org/docs に示されている手順からの抜粋です。SSL 対応の Apache の詳細なインストール方法については、この Web サイトを参照してください。
Apache ソフトウェアがすでにダウンロードされ、圧縮解除されている必要があります。
OpenSSL のソースをダウンロードし、展開します。
OpenSSL をコンパイルしてビルドします。
完全なインストール手順については、OpenSSL を圧縮解除したディレクトリにある INSTALL という名前のファイルを参照してください。このファイルには、OpenSSL をユーザー指定の場所にインストールする方法に関する情報が含まれています。
OpenSSL の詳細については、http://www.openssl.org/を参照してください。
Apache をダウンロードし、展開します。
Apache は http://httpd.apache.org から入手できます。
Apache をコンパイルしてビルドします。ソースツリーを設定します。
Apache 2.0.x では、コマンド cd http-2.0_ x を使用します。Apache 2.2.x では、コマンド cd http-2.2_x を使用します。
次のコマンドを実行します。
./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) を構築します。
Linux 2.1 上の Apache の場合は、コンパイルの前に次の手順を実行します。
src/MakeFile を開き、自動的に生成されるセクションの最後を見つけます。
自動的に生成されるセクションのあとの最初の 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
環境変数 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 を追加します。
使用しているバージョンのインストール手順で説明されている方法で、Apache をコンパイルします。
詳細については、http://httpd.apache.org/を参照してください。
一般的な手順は次のとおりです。
Apache 2.2.x では、apache-install-location/conf/httpd.conf ファイルで、Include conf/extra/httpd-vhosts.conf の行をコメント解除します。
次のコマンドを使用して、DAS 証明書を手動でエクスポートする必要があります。
appserver-install-dir/lib/upgrade/certutil -L -d appserver-instance-dir/config -n s1as -a -o sjsas.crt
この証明書は、ロードバランサプラグインのインストール時に必要になります。ロードバランサプラグインをインストールする前に、必ずこのタスクを実行してください。
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 に格納されます。変更内容の概要は次のとおりです。
ssl-config では、VirtualHost default:port のデフォルトのホスト名とポートが、Apache がインストールされているローカルシステムのホスト名とサーバーのポート番号に置き換えられます。この変更を行わないと、ロードバランサは機能しません。Solaris Apache が起動しない可能性があり、Linux では HTTPS 要求が機能しない可能性があります。
ssl-config では、ServerName www.example.com:443 の www.example.com が、Apache がインストールされているローカルシステムのホスト名で置き換えられます。
この変更を行わないと、セキュリティー証明書がインストールされている場合に Apache を起動すると次の警告が表示されます。
[warn] RSA server certificate CommonName (CN) hostname does NOT match server name! |
Apache に対する証明書のインストールについては、「Apache のセキュリティー証明書を作成する 」を参照してください。
config では、ServerName www.example.com:80 の www.example.com の部分を、Apache がインストールされているローカルシステムのホスト名で置き換えます。
この変更を行わないと、Apache を起動したときに、システムがサーバーの完全修飾ドメイン名を特定できなかったことと、重複する VirtualHost エントリが存在することを示す警告が表示されます。
apache-install-location/conf/extra/ httpd-vhosts.conf では、ServerName www.example.com:80 の www.example.com が、Apache がインストールされているローカルシステムのホスト名で置き換えられます。
この変更を行わないと、Apache を起動したときに、システムがサーバーの完全修飾ドメイン名を特定できなかったことと、重複する VirtualHost エントリが存在することを示す警告が表示されます。
Enterprise Server のインストールプログラムは、次のタスクをユーザーに代わって実行します。
sjsas.crt を apache-install-dir/conf/ssl.crt ディレクトリにコピーすることにより、DAS 証明書をインポートします。
Apache 2.2.x の apache-install-dir /conf/extra/httpd-ssl.conf または Apache 2.0.x の apache-instal -dir /conf/httpd.conf に、次の行を付加します。
<Location /lbconfigupdate> SSLVerifyClient require SSLVerifyDepth 1 SSLRequireSSL SSLCACertificateFile apache-install-dir//conf/ssl.crt/sjsas.crt SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \ and %{SSL_CLIENT_S_DN_O} eq "Sun Microsystems" \ and %{SSL_CLIENT_S_DN_OU} eq "Sun GlassFish Enterprise Server" \ and %{SSL_CLIENT_M_SERIAL} eq "<serial_number>" ) </Location> <Location /getmonitordata> SSLVerifyClient require SSLVerifyDepth 1 SSLRequireSSL SSLCACertificateFile apache-install-dir/conf/ssl.crt/sjsas.crt SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \ and %{SSL_CLIENT_S_DN_O} eq "Sun Microsystems" \ and %{SSL_CLIENT_S_DN_OU} eq "Sun GlassFish Enterprise Server" \ and %{SSL_CLIENT_M_SERIAL} eq <serial_number> ) </Location>
Apache 2.2.x では、apache-install-dir /conf/httpd.conf ファイルの Include conf/extra/httpd-ssl.conf の行が、コメント解除されていることを確認します。
serial-number の値は、DAS 証明書ファイルから生成する必要があります。serial-number を生成するには、コマンド keytool -printcert -file sjsas.crt を使用します。このコマンドの出力の小文字をすべて大文字に変更して、serial-number として使用します。このコマンドは、使用しているアプリケーションサーバーの名前も表示します。
この節では、Apache Web Server のインストール後に必要な変更を説明します。
スティッキラウンドロビン機能を使用するには、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 2.0.x では、Apache-install-dir /bin/apachectl スクリプトの LD_LIBRARY_PATH に /usr/lib/mps を追加します。
Apache 2.2.x では、Apache-install-dir /bin/envvars ファイルの LD_LIBRARY_PATH に /usr/lib/mps を追加します。
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/loadbalancer.xml
apache-install-location/conf/sun-loadbalancer_1_2.dtd
自動適用機能が正常に動作することを保証するには、apache-install-location/conf/ ディレクトリに対する読み取り、書き込み、および実行のアクセス権を Apache ユーザーに付与します。
Apache ユーザーがこのディレクトリの所有者と同じグループに属している場合は、モードを 775 に変更します。Apache ユーザーがこのディレクトリの所有者と異なるグループに属している場合は、モードを 777 に変更します。
次の手順は、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 サイトから抜粋したものです。
次の環境変数を設定します。
OPENSSL_CONF=OpenSSL-installation-directory/apps/openssl.cnf
次のコマンドを実行して、サーバー証明書とキーを作成します。
openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365
共通名を求められたら、Apache を実行する予定のホスト名を入力します。その他のすべてのプロンプトに対しては、環境ごとの特定の要件を満たす値を入力してください。
このコマンドによって newreq.pem が作成されます。
openssl コマンドを実行した場所から、新しく作成した newreq.pem を開きます。
BEGIN CERTIFICATE で始まり END CERTIFICATE で終わる部分の行をすべてコピーして、Apache-install-dir /conf/ssl.crt/server.crt に貼り付けます。次に例を示します。
-----BEGIN CERTIFICATE----- .... ... -----END CERTIFICATE----- |
BEGIN RSA PRIVATE KEY で始まる行から END RSA PRIVATE KEY で終わる行までをコピーして、Apache-install-dir /conf/ssl.key/server.key に貼り付けます。次に例を示します。
-----BEGIN RSA PRIVATE KEY----- ... ... ... -----END RSA PRIVATE KEY----- |
Apache 2.0.x の Apache-install-dir /conf/ssl.conf または Apache 2.2.x の Apa he-install-d r /conf/extra/httpd-ssl.conf で、変数 SSLCertificateKeyFile と SSLCertificateFile が正しい値に設定されていることを確認します。
ServerName が www.example.com でないことを確認します。ServerName を Apache を実行する実際のホスト名にして、サーバー証明書とキーを作成するときに入力した Common Name と一致させます。
一般的に、Apache は、Enterprise Server をインストールしたユーザーと同じユーザーで起動します。次の条件にあてはまる場合は、Apache をルートとして起動する必要があります。
Java Enterprise System ユーザーである場合。
1024 より小さいポート番号を使用した場合。
Apache を起動したユーザーとは異なるユーザーとして実行する場合。
Apache を SSL モードで起動するには、次のコマンドのいずれかを使用します。
Apache 2.0.x では apachectl startssl または apachectl -k start -DSSL。Apache 2.2.x では、apachectl start を使用します。
必要に応じて、Apache サーバーの起動に関する最新情報を Apache の Web サイトで確認してください。
ロードバランサプラグインをインストールします。プラグインの詳細なインストール手順については、『Sun GlassFish Enterprise Server 2.1 Installation Guide』を参照してください。インストールの間に、DAS 証明書へのパスを指定します。
Application Server 管理コンソールにログインし、新しいクラスタを作成します。新しいクラスタを作成する手順については、管理コンソールのオンラインヘルプを参照してください。
新しい HTTP ロードバランサを作成します。ロードバランサの作成中、デバイスのホストとして Web サーバーホストを、デバイスポートとして Web サーバーの SSL ポートを指定し、前の手順で作成したクラスタをターゲットとして選択します。新しい HTTP ロードバランサを作成するための詳細な手順については、管理コンソールのオンラインヘルプを参照してください。
DAS と Web サーバーの間の通信が正常に機能していることを確認するには、管理コンソールで「HTTP ロードバランサ」ノードに移動して「HTTP ロードバランサ」をクリックします。表示された「ロードバランサデバイス設定」ページで、「テスト接続」ボタンをクリックします。
ロードバランサの作成中に「変更を自動的に適用」オプションを有効にしなかった場合は、「エクスポート」タブに移動して「今すぐ適用」をクリックすることによって、ロードバランサの設定を手動でエクスポートする必要があります。
テスト接続に失敗した場合は、Application Server ドメインログおよび Web サーバーのログを確認して問題に対処します。また、すべての接続手順が正しく実行されたかどうかを確認します。
ロードバランサプラグインとともに Microsoft Internet Information Services (IIS) を使用するには、以降の各節の手順に従います。
Internet Services Manager を開きます。
プラグインを有効にする Web サイトを選択します。
この Web サイトは通常、デフォルトの Web サイトと名付けられます。
この Web サイト上で右クリックして「プロパティー」を選択し、「プロパティー」ノートブックを開きます。
次の手順に従って、新しい ISAPI フィルタを追加します。
新しい仮想ディレクトリを作成および設定します。
システムの PATH 環境変数に、sun-passthrough.dll ファイルのパス、Enterprise Server as-install/bin および Enterprise Server as-install/lib を追加します。
IIS 6.0 ユーザーである場合は、次の手順を実行して、ロードバランサの Web サービス拡張が IIS 6 で実行されるように設定します。
IIS 6.0 ユーザーの場合、ファイル C:\inetput\wwwroot\sun-passthrough\lb.log を作成し、そのファイル上のグループ IIS_WPG に対して、NTFS の書き込み権および変更権を与えます。
IIS 6.0 は Worker Process Isolation モードで実行されるため、IIS サーバーはグループ IIS_WPG のセキュリティー権限で実行されます。
IIS ユーザーはすべて、コンピュータを再起動します。
Web サーバー、ロードバランサプラグイン、および Enterprise Server が正常に動作していることを確認します。
Web ブラウザに http://web-server-name/web-application と入力して、Web アプリケーションのコンテキストルートにアクセスします。ここで、web-server-name は Web サーバーのホスト名または IP アドレスであり、web-application は C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.properties ファイルに一覧表示したコンテキストルートです。
ISAPI フィルタの状態は緑色になっているはずです。フィルタの状態を確認するには、Web サイトの「プロパティー」ノートブックを開き、「ISAPI フィルタ」タブをクリックします。状態が緑色になっていない場合は、何らかの HTTP 要求を IIS HTTP ポートに送信してみてください。要求が失敗すれば、正常です。ISAPI フィルタの状態を再確認します。
インストーラは、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 との組み合わせではサポートされていません。