小向さん、
もしかしたら、JSESSIONIDVERSIONがついていないとか?
mod_proxy は試してないのですが、GlassFish LB プラグイン
では
駄目でしょうか?
GlassFish LB プラグインを使い下記の手順で設定し確認
して
みていただけないでしょうか。
(下記の手順は今度ブログにでもアップします。)
Solaris 10で確認
Apache 2.2.14 Install:
/usr/local/apache2.2.14
OpenSSL/0.9.8k Install:
/usr/local/ssl
GlassFish Install:
/sun/glassfish-v2.1.1
http://www.sun.com/appserver より入手
GlassFish LB Plugin (aslb-9.1.1-b13.jar)の入手先
http://download.java.net/javaee5/external/SunOS/aslb/jars/ (SPARC
Solaris)
環境変数:
set path=(/usr/sfw/bin /sun/glassfish-v2.1.1/bin $path)
setenv LD_LIBRARY_PATH "/sun/glassfish-v2.1.1/lib:/sun/glassfish-
v2.1.1/lib/plug
in/lib:/usr/sfw/lib:/lib:/usr/lib"
setenv JAVA_HOME /usr/jdk/jdk1.6.0_12
Apache 2.2.14 のコンパイル
# ./configure --with-ssl=/usr/local/ssl --prefix=/usr/local/
apache2.2.14 --enable-ssl --enable-so --with-included-apr
# make
# make install
サーバ名の編集
# vi /usr/local/apache2.2.14/conf/httpd.conf
ServerName sw-103.japan.sun.com
動作確認
# /usr/local/apache2.2.14/bin/apachectl start
接続確認と Server ヘッダの内容確認
# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Host: sw-103.japan.sun.com
HTTP/1.1 200 OK
Date: Mon, 09 Nov 2009 03:24:54 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8k
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "f580c-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html
<html><body><h1>It works!</h1></body></html>
# /usr/local/apache2.2.14/bin/apachectl stop
上記で,Apache のかんたんな動作確認を行います.
次に GlassFish の証明書を抽出します.
この際,管理ガイドには certutil コマンドを使用した
例が
記載されておりますが,certutil コマンドは GlassFish
with HADB のインストーラを使用してインストールした
場合のみ
利用可能となります.そこで HADB を使用しないインス
トーラを
使用する場合は,JavaSE 付属の keytool を使用して証明
書をエクスポートします.
# cd /sun/glassfish-v2.1.1/domains/domain1/config/
# keytool -export -rfc -alias s1as -keystore keystore.jks -file
sjsas.crt
キーストアのパスワードを入力してください: changeit
証明書がファイル <sjsas.crt> に保存されました.
Apacheの設定変更
httpd.conf の編集
##BEGIN EE LB Plugin Parameters
LoadFile /usr/lib/libCstd.so.1
LoadModule apachelbplugin_module /usr/local/apache2.2.14/modules/
mod_loadbalancer.so
#AddModule apachelbplugin_module
<IfModule apachelbplugin_module>
config-file /usr/local/apache2.2.14/conf/loadbalancer.xml
locale en
</IfModule>
##END EE LB Plugin Parameters
証明書のコピーとシリアル番号の確認
# mkdir /usr/local/apache2.2.14/conf/ssl.crt
# mv /sun/glassfish-v2.1.1/domains/domain1/config/sjsas.crt /usr/local/
apache2.2.14/conf/ssl.crt/
# cd /usr/local/apache2.2.14/conf/ssl.crt/
# keytool -printcert -file sjsas.crt
所有者: CN=sw-103, OU=Sun GlassFish Enterprise Server, O=Sun
Microsystems, L=Santa Clara, ST=California, C=US
実行者: CN=sw-103, OU=Sun GlassFish Enterprise Server, O=Sun
Microsystems, L=Santa Clara, ST=California, C=US
シリアル番号: 4af78e41
有効日: Mon Nov 09 12:36:33 JST 2009 有効期限: Thu Nov 07
12:36:33 JST 2019
証明書のフィンガープリント:
MD5: 4D:D5:7F:69:A9:F7:FF:1B:42:0C:A3:10:32:EA:BB:34
SHA1: 06:64:63:CE:76:B7:32:69:7B:6C:92:CC:59:5A:6E:8D:7D:DA:CE:
0A
ここで,上記のシリアル番号(上記では:4af78e41)を
覚えておきます.
"extra/httpd-ssl.conf" 設定変更
ここで注意して頂きたいのは上記シリアル番号は小文
字で表示
されておりますが,下記の設定ファイル中には全て大
文字で記載して
頂く必要があります.
(4af78e41 → 4AF78E41 に変更)
<VirtualHost sw-103.japan.sun.com:443>
ServerName sw-103.japan.sun.com:443
ServerAdmin admin-webserver_at_Sun.COM
下記の行をファイルの最後に追加
<Location /lbconfigupdate>
SSLVerifyClient require
SSLVerifyDepth 1
SSLRequireSSL
SSLCACertificateFile /usr/local/apache2.2.14/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 "4AF78E41" )
</Location>
<Location /getmonitordata>
SSLVerifyClient require
SSLVerifyDepth 1
SSLRequireSSL
SSLCACertificateFile /usr/local/apache2.2.14/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 "4AF78E41" )
</Location>
httpd.conf ファイルの修正 (SSL の有効化)
# vi /usr/local/apache2.2.14/conf/httpd.conf
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf <-------コメントアウト
httpd.conf ファイルの修正(マルチプロセッサ対応)
# vi /usr/local/apache2.2.14/conf/httpd.conf
# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf <-------コメントアウト
環境変数の追加
# vi /usr/local/apache2.2.14/bin/envvars
LD_LIBRARY_PATH="/usr/local/apache2.2.14/lib:/usr/lib/mps:
$LD_LIBRARY_PATH"
CA の構築の準備 (openssl.cnfの編集)
[ usr_cert ]
basicConstraints=CA:TRUE <---FALSEから変更
CA の構築
# ./misc/CA.pl -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Generating a 1024 bit RSA private key
....++++++
.........................................................++++++
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or
a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Setagaya Yoga
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sun
Microsystems
Organizational Unit Name (eg, section) []:Software Practice
Common Name (eg, YOUR name) []:ca-server.sun.com
Email Address []:caadmin_at_Sun.COM
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/local/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
cd:ea:db:f4:c8:e3:93:84
Validity
Not Before: Nov 9 04:40:09 2009 GMT
Not After : Nov 8 04:40:09 2012 GMT
Subject:
countryName = JP
stateOrProvinceName = Tokyo
organizationName = Sun Microsystems
organizationalUnitName = Software Practice
commonName = ca-server.sun.com
emailAddress = caadmin_at_Sun.COM
X509v3 extensions:
X509v3 Subject Key Identifier:
1D:B8:4C:
30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A
X509v3 Authority Key Identifier:
keyid:1D:B8:4C:
30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A
DirName:/C=JP/ST=Tokyo/O=Sun Microsystems/OU=Software Practice/CN=ca-server.sun.com/emailAddress=caadmin_at_Sun.COM
serial:CD:EA:DB:F4:C8:E3:93:84
X509v3 Basic Constraints:
CA:TRUE
Certificate is to be certified until Nov 8 04:40:09 2012 GMT (1095
days)
Write out database with 1 new entries
Data Base Updated
サーバ証明書の作成(CSRの作成)
# mkdir /usr/local/apache2.2.14/conf/ssl.key
秘密鍵の生成
# openssl genrsa -des3 -out sw-103.japan.sun.com.key 1024
Generating RSA private key, 1024 bit long modulus
...............++++++
.......................................++++++
e is 65537 (0x10001)
Enter pass phrase for sw-103.japan.sun.com.key:
Verifying - Enter pass phrase for sw-103.japan.sun.com.key:
# ls
sw-103.japan.sun.com.key
CSR の作成
# openssl req -new -key sw-103.japan.sun.com.key -out
sw-103.japan.sun.com.csr
Enter pass phrase for sw-103.japan.sun.com.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or
a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Setagaya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sun
Microsystems
Organizational Unit Name (eg, section) []:Software Practice
Common Name (eg, YOUR name) []:sw-103.japan.sun.com
Email Address []:webadmin_at_Sun.COM
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
CA でサーバ証明書の署名の準備
[ usr_cert ]
basicConstraints=CA:FALSE <---TRUEから変更
nsCertType = server <---------- コメントアウト
CA でサーバ証明書の署名
# openssl ca -config /usr/local/ssl/openssl.cnf -in /usr/local/
apache2.2.14/conf/ssl.key/sw-103.japan.sun.com.csr -keyfile /usr/local/
ssl/demoCA/private/cakey.pem -cert /usr/local/ssl/demoCA/cacert.pem -
out sw-103.japan.sun.com.server-cert
Using configuration from /usr/local/ssl/openssl.cnf
Enter pass phrase for /usr/local/ssl/demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
cd:ea:db:f4:c8:e3:93:85
Validity
Not Before: Nov 9 05:00:38 2009 GMT
Not After : Nov 9 05:00:38 2010 GMT
Subject:
countryName = JP
stateOrProvinceName = Tokyo
organizationName = Sun Microsystems
organizationalUnitName = Software Practice
commonName = sw-103.japan.sun.com
emailAddress = webadmin_at_Sun.COM
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Server
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
1C:2C:07:8A:F5:76:DE:32:F1:A0:E6:E0:F1:EB:
88:D9:77:36:02:16
X509v3 Authority Key Identifier:
keyid:1D:B8:4C:
30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A
Certificate is to be certified until Nov 9 05:00:38 2010 GMT (365
days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
# mv sw-103.japan.sun.com.server-cert /usr/local/apache2.2.14/conf/
ssl.crt/
署名済みサーバ証明書の内容を確認
# cat sw-103.japan.sun.com.server-cert
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
cd:ea:db:f4:c8:e3:93:85
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software
Practice, CN=ca-server.sun.com/emailAddress=caadmin_at_Sun.COM
Validity
Not Before: Nov 9 05:00:38 2009 GMT
Not After : Nov 9 05:00:38 2010 GMT
Subject: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software
Practice, CN=sw-103.japan.sun.com/emailAddress=webadmin_at_Sun.COM
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:c5:89:4e:c4:c7:c9:3b:91:cc:51:38:d1:04:4c:
83:06:aa:32:6d:29:1a:47:a3:eb:42:c6:66:d8:71:
b5:59:f8:40:82:84:56:89:60:70:5f:72:ae:3c:98:
78:77:94:bf:64:09:94:12:65:0f:89:65:04:cc:ce:
67:e1:28:0c:a5:eb:49:43:d1:48:81:71:df:6a:c2:
0b:66:96:96:be:81:4d:3a:72:2d:8f:c6:90:d4:bd:
23:ad:5b:0a:b5:53:29:39:33:ea:d8:1f:2b:a7:78:
8c:85:3d:40:93:64:f5:01:e5:62:d8:68:f0:03:23:
b4:3a:11:09:81:1d:23:f8:51
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Server
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
1C:2C:07:8A:F5:76:DE:32:F1:A0:E6:E0:F1:EB:
88:D9:77:36:02:16
X509v3 Authority Key Identifier:
keyid:1D:B8:4C:
30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A
Signature Algorithm: sha1WithRSAEncryption
3c:21:65:b6:84:0c:0f:d4:f0:05:18:cd:2d:a2:a6:61:e2:13:
74:7f:6c:78:3d:13:81:31:dc:c4:1c:c7:36:61:8c:e8:b7:8c:
8b:c8:99:24:8e:fb:a9:ff:3a:e1:1e:2f:f2:87:2f:ef:cc:1a:
db:99:f3:0d:1c:27:a2:55:35:e9:2f:43:54:49:85:8e:f1:da:
22:1e:3d:de:8f:a1:2e:aa:1b:4d:20:c2:72:ce:13:5f:be:05:
cb:5f:25:66:19:43:ab:6d:2c:82:07:51:26:88:a7:60:ea:24:
ed:cc:f7:f6:fe:7d:aa:a8:8b:1c:0f:59:b6:ab:e5:70:c5:3b:
51:b0
-----BEGIN CERTIFICATE-----
MIIDNDCCAp2gAwIBAgIJAM3q2/TI45OFMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl
bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2
ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5
MTEwOTA1MDAzOFoXDTEwMTEwOTA1MDAzOFowgZQxCzAJBgNVBAYTAkpQMQ4wDAYD
VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR
U29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFHN3LTEwMy5qYXBhbi5zdW4uY29t
MR8wHQYJKoZIhvcNAQkBFhB3ZWJhZG1pbkBTdW4uQ09NMIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQDFiU7Ex8k7kcxRONEETIMGqjJtKRpHo+tCxmbYcbVZ+ECC
hFaJYHBfcq48mHh3lL9kCZQSZQ+JZQTMzmfhKAyl60lD0UiBcd9qwgtmlpa+gU06
ci2PxpDUvSOtWwq1Uyk5M+rYHyuneIyFPUCTZPUB5WLYaPADI7Q6EQmBHSP4UQID
AQABo4GPMIGMMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMCwGCWCGSAGG
+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU
HCwHivV23jLxoObg8euI2Xc2AhYwHwYDVR0jBBgwFoAUHbhMMMyhNbJyNaCKzPr5
F5zE0kowDQYJKoZIhvcNAQEFBQADgYEAPCFltoQMD9TwBRjNLaKmYeITdH9seD0T
gTHcxBzHNmGM6LeMi8iZJI77qf864R4v8ocv78wa25nzDRwnolU16S9DVEmFjvHa
Ih493o+hLqobTSDCcs4TX74Fy18lZhlDq20sggdRJoinYOok7cz39v59qqiLHA9Z
tqvlcMU7UbA=
-----END CERTIFICATE-----
署名済みサーバ証明書
sw-103.japan.sun.com.server-cert ファイルより PEM の書きだし
# vi sw-103.japan.sun.com.server-cert.pem
-----BEGIN CERTIFICATE-----
MIIDNDCCAp2gAwIBAgIJAM3q2/TI45OFMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl
bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2
ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5
MTEwOTA1MDAzOFoXDTEwMTEwOTA1MDAzOFowgZQxCzAJBgNVBAYTAkpQMQ4wDAYD
VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR
U29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFHN3LTEwMy5qYXBhbi5zdW4uY29t
MR8wHQYJKoZIhvcNAQkBFhB3ZWJhZG1pbkBTdW4uQ09NMIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQDFiU7Ex8k7kcxRONEETIMGqjJtKRpHo+tCxmbYcbVZ+ECC
hFaJYHBfcq48mHh3lL9kCZQSZQ+JZQTMzmfhKAyl60lD0UiBcd9qwgtmlpa+gU06
ci2PxpDUvSOtWwq1Uyk5M+rYHyuneIyFPUCTZPUB5WLYaPADI7Q6EQmBHSP4UQID
AQABo4GPMIGMMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMCwGCWCGSAGG
+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU
HCwHivV23jLxoObg8euI2Xc2AhYwHwYDVR0jBBgwFoAUHbhMMMyhNbJyNaCKzPr5
F5zE0kowDQYJKoZIhvcNAQEFBQADgYEAPCFltoQMD9TwBRjNLaKmYeITdH9seD0T
gTHcxBzHNmGM6LeMi8iZJI77qf864R4v8ocv78wa25nzDRwnolU16S9DVEmFjvHa
Ih493o+hLqobTSDCcs4TX74Fy18lZhlDq20sggdRJoinYOok7cz39v59qqiLHA9Z
tqvlcMU7UbA=
-----END CERTIFICATE-----
Apache の SSL の設定
# vi /usr/local/apache2.2.14/conf/extra/httpd-ssl.conf
SSLCertificateFile "/usr/local/apache2.2.14/conf/ssl.crt/
sw-103.japan.sun.com.server-cert.pem"
SSLCertificateKeyFile "/usr/local/apache2.2.14/conf/ssl.key/
sw-103.japan.sun.com.key"
ロードバランサプラグインの設定
下記より入手
http://download.java.net/javaee5/external/SunOS/aslb/jars/ (SPARC
Solaris)
# jar xvf aslb-9.1.1-b13.jar
SUNWaslb.zip が抽出されました.
SUNWaspx.zip が抽出されました.
BinariesLicense が展開されました.
# ls
BinariesLicense SUNWaslb.zip SUNWaspx.zip aslb-9.1.1-
b13.jar
# mkdir /sun/glassfish-v2.1.1/lib/plugin
# mv *.zip /sun/glassfish-v2.1.1/lib/plugin/
# cd /sun/glassfish-v2.1.1/lib/plugin/
# unzip SUNWaslb.zip
Archive: SUNWaslb.zip
creating: lib/
creating: lib/dtds/
inflating: lib/dtds/sun-loadbalancer_1_0.dtd
inflating: lib/dtds/sun-loadbalancer_1_1.dtd
inflating: lib/dtds/sun-loadbalancer_1_2.dtd
creating: lib/install/
creating: lib/install/templates/
inflating: lib/install/templates/loadbalancer.xml.example
inflating: lib/install/templates/ReadMe.UserDefinedLB
inflating: lib/install/templates/roundrobin.c
inflating: lib/install/templates/loadbalancer.h
# unzip SUNWaspx.zip
Archive: SUNWaspx.zip
inflating: lib/libxerces-c.so
inflating: lib/libsupport.so
inflating: lib/libnsprwrap.so
inflating: lib/libns-httpd40.so
inflating: lib/libnsfc.so
inflating: lib/libnstp.so
inflating: lib/libdirmon4.so
inflating: lib/libnstime.so
inflating: lib/libgetprop.so
inflating: lib/liblibsi18n.so
inflating: lib/libares3.so
inflating: lib/libssldap50.so
inflating: lib/liblibdbm.so
inflating: lib/libldap50.so
inflating: lib/libicuuc.so.2
inflating: lib/libicui18n.so.2
inflating: lib/libicudata.so.2
inflating: lib/libsasl.so
inflating: lib/libprldap50.so
creating: lib/webserver-plugin/
creating: lib/webserver-plugin/solaris/
creating: lib/webserver-plugin/solaris/sjsws/
creating: lib/webserver-plugin/solaris/sjsws/errorpages/
inflating: lib/webserver-plugin/solaris/sjsws/errorpages/default-
error.html
inflating: lib/webserver-plugin/solaris/sjsws/errorpages/sun-http-
lberror.html
inflating: lib/webserver-plugin/solaris/sjsws/libpassthrough.so
inflating: lib/webserver-plugin/solaris/sjsws/LBPluginDefault_root.res
inflating: lib/webserver-plugin/solaris/sjsws/LBPlugin_root.res
creating: lib/webserver-plugin/solaris/apache2/
creating: lib/webserver-plugin/solaris/apache2/errorpages/
inflating: lib/webserver-plugin/solaris/apache2/errorpages/default-
error.html
inflating: lib/webserver-plugin/solaris/apache2/errorpages/sun-http-
lberror.html
inflating: lib/webserver-plugin/solaris/apache2/mod_loadbalancer.so
inflating: lib/webserver-plugin/solaris/apache2/secmod.db
inflating: lib/webserver-plugin/solaris/apache2/cert8.db
inflating: lib/webserver-plugin/solaris/apache2/key3.db
inflating: lib/webserver-plugin/solaris/apache2/LBPluginDefault_root.res
inflating: lib/webserver-plugin/solaris/apache2/LBPlugin_root.res
creating: lib/webserver-plugin/solaris/apache2.2/
creating: lib/webserver-plugin/solaris/apache2.2/errorpages/
inflating: lib/webserver-plugin/solaris/apache2.2/errorpages/default-
error.html
inflating: lib/webserver-plugin/solaris/apache2.2/errorpages/sun-http-
lberror.html
inflating: lib/webserver-plugin/solaris/apache2.2/mod_loadbalancer.so
inflating: lib/webserver-plugin/solaris/apache2.2/secmod.db
inflating: lib/webserver-plugin/solaris/apache2.2/cert8.db
inflating: lib/webserver-plugin/solaris/apache2.2/key3.db
inflating: lib/webserver-plugin/solaris/apache2.2/
LBPluginDefault_root.res
inflating: lib/webserver-plugin/solaris/apache2.2/LBPlugin_root.res
ライブラリ,設定ファイル等のコピー
# mkdir /usr/local/apache2.2.14/modules/resource
# mkdir /usr/local/apache2.2.14/modules/errorpage
# cp /sun/glassfish-v2.1.1/lib/plugin/lib/webserver-plugin/solaris/
apache2.2/LBPluginDefault_root.res /usr/local/apache2.2.14/modules/
resource/
# cp /sun/glassfish-v2.1.1/lib/plugin/lib/webserver-plugin/solaris/
apache2/LBPlugin_root.res /usr/local/apache2.2.14/modules/resource/
# cp /sun/glassfish-v2.1.1/lib/plugin/lib/webserver-plugin/solaris/
apache2.2/mod_loadbalancer.so /usr/local/apache2.2.14/modules/
# cp /sun/glassfish-v2.1.1/lib/plugin/lib/webserver-plugin/solaris/
apache2.2/errorpages/* /usr/local/apache2.2.14/modules/errorpage/
# cp /sun/glassfish-v2.1.1/lib/plugin/lib/install/templates/
loadbalancer.xml.example /usr/local/apache2.2.14/conf/loadbalancer.xml
# mv /sun/glassfish-v2.1.1/lib/plugin/lib/install/templates/
loadbalancer.xml.example /sun/glassfish-v2.1.1/lib/plugin/lib/install/
templates/loadbalancer.xml
# cp /sun/glassfish-v2.1.1/lib/plugin/lib/dtds/sun* /usr/local/
apache2.2.14/conf/
認証用DB ディレクトリ作成
# mkdir /usr/local/apache2.2.14/sec_db_files
# cp /sun/glassfish-v2.1.1/lib/plugin/lib/webserver-plugin/solaris/
apache2.2/*.db /usr/local/apache2.2.14/sec_db_files/
設定ディレクトリに起動ユーザがアクセス可能に設定
変更
# chown -R daemon /usr/local/apache2.2.14/conf/
Apache の再起動
# /usr/local/apache2.2.14/bin/apachectl start
Apache/2.2.14 mod_ssl/2.2.14 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server sw-103.japan.sun.com:443 (RSA)
Enter pass phrase:
OK: Pass Phrase Dialog successful.
CA 証明書を GlassFish へインポート
# cat /usr/local/ssl/demoCA/cacert.pem
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
cd:ea:db:f4:c8:e3:93:84
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software
Practice, CN=ca-server.sun.com/emailAddress=caadmin_at_Sun.COM
Validity
Not Before: Nov 9 04:40:09 2009 GMT
Not After : Nov 8 04:40:09 2012 GMT
Subject: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software
Practice, CN=ca-server.sun.com/emailAddress=caadmin_at_Sun.COM
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:b6:ee:98:16:65:fb:da:94:48:67:71:00:3b:66:
81:6f:09:46:5a:e2:46:6c:0e:80:ea:18:ca:b8:9f:
6b:26:73:ee:da:36:48:1d:3d:fa:09:3b:6a:5a:b3:
10:5c:f5:bc:50:36:8d:46:6e:e1:7f:2f:79:63:0f:
fc:f2:c5:be:68:f0:3d:55:ed:49:b9:37:1d:e4:56:
a2:c8:a7:6f:48:1e:e3:db:17:d7:f3:65:18:e7:bd:
d3:01:90:cf:17:22:df:43:ba:57:c1:65:1e:8d:5b:
5a:df:69:fd:24:97:67:32:c0:b5:29:fd:63:90:2e:
d4:69:69:18:73:b8:80:be:21
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
1D:B8:4C:
30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A
X509v3 Authority Key Identifier:
keyid:1D:B8:4C:
30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A
DirName:/C=JP/ST=Tokyo/O=Sun Microsystems/OU=Software Practice/CN=ca-server.sun.com/emailAddress=caadmin_at_Sun.COM
serial:CD:EA:DB:F4:C8:E3:93:84
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: sha1WithRSAEncryption
32:8b:2a:63:52:72:41:30:cc:b2:eb:5e:59:60:cd:e8:39:46:
19:dd:48:30:2c:e9:e8:b3:fa:c6:18:2a:2f:f4:22:1c:c6:22:
c7:f0:f7:17:73:72:17:45:88:11:14:3a:88:35:18:52:a9:f0:
eb:8e:de:18:3f:d7:33:e1:09:84:6c:da:b2:f7:03:f1:ae:37:
b8:1c:f6:19:53:e0:0a:12:b3:7b:5a:dd:39:f1:d2:85:49:e0:
3e:5a:9d:89:b0:38:b0:76:80:11:cb:83:b0:fe:3f:ed:92:15:
68:3a:6d:3b:13:77:cc:4d:b1:1d:4b:8d:9d:b6:41:e5:06:07:
52:af
-----BEGIN CERTIFICATE-----
MIIDmTCCAwKgAwIBAgIJAM3q2/TI45OEMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl
bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2
ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5
MTEwOTA0NDAwOVoXDTEyMTEwODA0NDAwOVowgZAxCzAJBgNVBAYTAkpQMQ4wDAYD
VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR
U29mdHdhcmUgUHJhY3RpY2UxGjAYBgNVBAMTEWNhLXNlcnZlci5zdW4uY29tMR4w
HAYJKoZIhvcNAQkBFg9jYWFkbWluQFN1bi5DT00wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBALbumBZl+9qUSGdxADtmgW8JRlriRmwOgOoYyrifayZz7to2SB09
+gk7alqzEFz1vFA2jUZu4X8veWMP/PLFvmjwPVXtSbk3HeRWosinb0ge49sX1/Nl
GOe90wGQzxci30O6V8FlHo1bWt9p/SSXZzLAtSn9Y5Au1GlpGHO4gL4hAgMBAAGj
gfgwgfUwHQYDVR0OBBYEFB24TDDMoTWycjWgisz6+RecxNJKMIHFBgNVHSMEgb0w
gbqAFB24TDDMoTWycjWgisz6+RecxNJKoYGWpIGTMIGQMQswCQYDVQQGEwJKUDEO
MAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGjAYBgNV
BAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2ZXIuc3VuLmNv
bTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NggkAzerb9Mjjk4QwDAYD
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAyiypjUnJBMMyy615ZYM3oOUYZ
3UgwLOnos/rGGCov9CIcxiLH8PcXc3IXRYgRFDqINRhSqfDrjt4YP9cz4QmEbNqy
9wPxrje4HPYZU+AKErN7Wt058dKFSeA+Wp2JsDiwdoARy4Ow/j/tkhVoOm07E3fM
TbEdS42dtkHlBgdSrw==
-----END CERTIFICATE-----
# vi /tmp/cacert.pem
-----BEGIN CERTIFICATE-----
MIIDmTCCAwKgAwIBAgIJAM3q2/TI45OEMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl
bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2
ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5
MTEwOTA0NDAwOVoXDTEyMTEwODA0NDAwOVowgZAxCzAJBgNVBAYTAkpQMQ4wDAYD
VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR
U29mdHdhcmUgUHJhY3RpY2UxGjAYBgNVBAMTEWNhLXNlcnZlci5zdW4uY29tMR4w
HAYJKoZIhvcNAQkBFg9jYWFkbWluQFN1bi5DT00wgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBALbumBZl+9qUSGdxADtmgW8JRlriRmwOgOoYyrifayZz7to2SB09
+gk7alqzEFz1vFA2jUZu4X8veWMP/PLFvmjwPVXtSbk3HeRWosinb0ge49sX1/Nl
GOe90wGQzxci30O6V8FlHo1bWt9p/SSXZzLAtSn9Y5Au1GlpGHO4gL4hAgMBAAGj
gfgwgfUwHQYDVR0OBBYEFB24TDDMoTWycjWgisz6+RecxNJKMIHFBgNVHSMEgb0w
gbqAFB24TDDMoTWycjWgisz6+RecxNJKoYGWpIGTMIGQMQswCQYDVQQGEwJKUDEO
MAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGjAYBgNV
BAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2ZXIuc3VuLmNv
bTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NggkAzerb9Mjjk4QwDAYD
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAyiypjUnJBMMyy615ZYM3oOUYZ
3UgwLOnos/rGGCov9CIcxiLH8PcXc3IXRYgRFDqINRhSqfDrjt4YP9cz4QmEbNqy
9wPxrje4HPYZU+AKErN7Wt058dKFSeA+Wp2JsDiwdoARy4Ow/j/tkhVoOm07E3fM
TbEdS42dtkHlBgdSrw==
-----END CERTIFICATE-----
CA 証明書のインポート
# keytool -import -trustcacerts -v -keystore /sun/glassfish-v2.1.1/
domains/domain1/config/cacerts.jks -alias myOwnCert -file /tmp/
cacert.pem
キーストアのパスワードを入力してください: changeit
所有者: EMAILADDRESS=caadmin_at_Sun.COM, CN=ca-server.sun.com,
OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
実行者: EMAILADDRESS=caadmin_at_Sun.COM, CN=ca-server.sun.com,
OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
シリアル番号: cdeadbf4c8e39384
有効日: Mon Nov 09 13:40:09 JST 2009 有効期限: Thu Nov 08
13:40:09 JST 2012
証明書のフィンガープリント:
MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48
SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:
31
この証明書を信頼しますか? [no]: yes
証明書がキーストアに追加されました.
[/sun/glassfish-v2.1.1/domains/domain1/config/cacerts.jks を格納中]
CA 証明書のインポート
# keytool -import -trustcacerts -v -keystore /sun/glassfish-v2.1.1/
domains/domain1/config/keystore.jks -alias myOwnCert -file /tmp/
cacert.pem
キーストアのパスワードを入力してください: changeit
所有者: EMAILADDRESS=caadmin_at_Sun.COM, CN=ca-server.sun.com,
OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
実行者: EMAILADDRESS=caadmin_at_Sun.COM, CN=ca-server.sun.com,
OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
シリアル番号: cdeadbf4c8e39384
有効日: Mon Nov 09 13:40:09 JST 2009 有効期限: Thu Nov 08
13:40:09 JST 2012
証明書のフィンガープリント:
MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48
SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:
31
この証明書を信頼しますか? [no]: yes
証明書がキーストアに追加されました.
[/sun/glassfish-v2.1.1/domains/domain1/config/keystore.jks を格納中]
CA 証明書のインポート後の確認
# keytool -list -v -alias myOwnCert -keystore cacerts.jks
キーストアのパスワードを入力してください: changeit
別名: myOwnCert
作成日: 2009/11/09
エントリのタイプ: trustedCertEntry
所有者: EMAILADDRESS=caadmin_at_Sun.COM, CN=ca-server.sun.com,
OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
実行者: EMAILADDRESS=caadmin_at_Sun.COM, CN=ca-server.sun.com,
OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
シリアル番号: cdeadbf4c8e39384
有効日: Mon Nov 09 13:40:09 JST 2009 有効期限: Thu Nov 08
13:40:09 JST 2012
証明書のフィンガープリント:
MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48
SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:
31
# keytool -list -v -alias myOwnCert -keystore keystore.jks
キーストアのパスワードを入力してください: changeit
別名: myOwnCert
作成日: 2009/11/09
エントリのタイプ: trustedCertEntry
所有者: EMAILADDRESS=caadmin_at_Sun.COM, CN=ca-server.sun.com,
OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
実行者: EMAILADDRESS=caadmin_at_Sun.COM, CN=ca-server.sun.com,
OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
シリアル番号: cdeadbf4c8e39384
有効日: Mon Nov 09 13:40:09 JST 2009 有効期限: Thu Nov 08
13:40:09 JST 2012
証明書のフィンガープリント:
MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48
SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:
31
GlassFish 上で動作確認
ドメインの起動
# ./asadmin start-domain domain1
ドメイン domain1 を起動しています.お待ちください。
デフォルトのログの場所は /sun/glassfish-v2.1.1/domains/
domain1/logs/server.log です。
出力を /sun/glassfish-v2.1.1/domains/domain1/logs/server.log にリ
ダイレクトしています
ドメイン domain1 はクライアントの要求を受信する準備
ができています.追加のサービスがバックグラウンド
で開始されます。
ドメイン [domain1] はその設定で [Sun GlassFish Enterprise
Server v2.1.1 ((v2.1 Patch06)(9.1_02 Patch12)) (build
b31g-fcs)] を実行しています.ログは [/sun/glassfish-
v2.1.1/domains] にあります。
管理コンソールは [
http://localhost:4848] で使用できま
す。
"asadmin" コマンドにも同じポート [4848] を使用します。
ユーザーの Web アプリケーションは次の URL で使用で
きます:
[
http://localhost:8080 https://localhost:8181 ].
次の web-contexts を使用できます:
[/web1 /__wstx-services ]。
標準の JMX クライアント (JConsole など) はドメイン
管理のために JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://sw-103:8686/jmxrmi] に接続できま
す.
ドメインは少なくとも次のポートで接続を待機してい
ます:
[8080 8181 4848 3700 3820 3920 8686 ]。
ドメインはアプリケーションサーバークラスタおよび
その他のスタンドアロンインスタンスをサポートしま
せん。
クラスタサポートを追加
ブラウザで,
http://INSTALL_MACHINE:4848 へアクセス
User : admin
Pass : adminadmin
管理コンソールより [アプリケーションサーバ]→[一
般]→[クラスタサポートを追加...]
クラスタサポートを追加画面より[了解]ボタンを押
下.
ドメインの再起動
# asadmin stop-domain domain1
# asadmin start-domain domain1
ノードエージェントの作成
# asadmin create-node-agent sw-103
コマンド create-node-agent は正常に実行されました.
# asadmin start-node-agent sw-103
出力を /sun/glassfish-v2.1.1/nodeagents/sw-103/agent/logs/server.log
にリダイレクトしています
アプリケーション出力を /sun/glassfish-v2.1.1/nodeagents/
sw-103/agent/logs/server.log にリダイレクトします
コマンド start-node-agent は正常に実行されました
クラスタとインスタンスの作成
# asadmin create-cluster --user admin --host sw-103 cluster1
コマンド create-cluster は正常に実行されました。
# asadmin create-instance --nodeagent sw-103 --cluster cluster1
instance1
コマンド create-instance は正常に実行されました。
# asadmin create-instance --nodeagent sw-103 --cluster cluster1
instance2
HTTP_LISTENER_PORT の代わりに 38,081 を使用します。
HTTP_SSL_LISTENER_PORT の代わりに 38,182 を使用します。
IIOP_SSL_LISTENER_PORT の代わりに 33,821 を使用します。
JMS_PROVIDER_PORT の代わりに 37,677 を使用します。
IIOP_LISTENER_PORT の代わりに 33,701 を使用します。
JMX_SYSTEM_CONNECTOR_PORT の代わりに 38,687 を使用します。
IIOP_SSL_MUTUALAUTH_PORT の代わりに 33,921 を使用します。
コマンド create-instance は正常に実行されました。
クラスタの起動
# asadmin start-cluster cluster1
クラスタ化されたインスタンス instance1 の起動に成功
しました。
クラスタ化されたインスタンス instance2 の起動に成功
しました。
コマンド start-cluster は正常に実行されました。
サンプルアプリケーションのデプロイ
# asadmin deploy --target cluster1 --availabilityenabled=true /sun/
glassfish-v2.1.1/samples/quickstart/clusterjsp/clusterjsp.ear
コマンド deploy は正常に実行されました。
ロードバランサプラグインの設定と設定ファイルのエ
クスポート
# asadmin create-http-lb-config --target cluster1 lb-config
コマンド create-http-lb-config は正常に実行されました。
# asadmin enable-http-lb-server cluster1
コマンド enable-http-lb-server は正常に実行されました。
# asadmin enable-http-lb-application --name clusterjsp cluster1
コマンド enable-http-lb-application は正常に実行されまし
た。
# asadmin create-http-health-checker --interval 10 --config lb-config
cluster1
コマンド create-http-health-checker は正常に実行されまし
た。
# asadmin export-http-lb-config --config lb-config /tmp/loadbalancer.xml
生成されたファイルの場所: /tmp/loadbalancer.xml
コマンド export-http-lb-config は正常に実行されました。
ここで,出力されたloadbalancer.xmlファイルを Apache 上に
コピーする事で利用可能になります.
# cp /tmp/loadbalancer.xml /usr/local/apache2.2.14/conf/loadbalancer.xml
動作確認
ブラウザで Apache が稼働するマシンへ接続
http://INSTALL_MACHINE/clusterjsp/
Served From Server instance: instance1
アプリケーションの画面より上記エントリを確認し,
インスタンス1でアプリケーションが稼働しているこ
とを確認
Enter session attribute data:
にセッション情報を追加
上記稼働中のサーバインスタンスを停止
# asadmin stop-instance instance1
コマンド stop-instance は正常に実行されました.
ブラウザより,リロードするか,[Reload Page]ボタンを
押下.
下記のエントリが instance1からinstance2に変更している
事を
確認.また追加したセッション情報が引き継がれてい
ることを確認
Served From Server instance: instance2
下記コマンドの実行にて Web Server 上の loadbalancer.xml を
直接編集することなく,
asadmin のコマンドラインから自動的に設定内容を変更
する事が可能になる.
"—autoapplyenabled=true"機能
# asadmin create-http-lb --target cluster1 --autoapplyenabled=true --
devicehost sw-103.japan.sun.com --deviceport 443 lb-config
コマンド create-http-lb は正常に実行されました。
例1:ロードバランサ上でインスタンス2に対する送
信を停止
# asadmin set "cluster1.server-ref.instance2.lb-enabled=false"
loadbalancer.xml の enabled が false に変更される
<instance disable-timeout-in-minutes="30" enabled="false"
listeners="http://
sw-103:38081
https://sw-103:38182" name="instance2" weight="100"/>
設定変更を行った後,アプリケーションサーバ側から
下記のコマンドを実行する事で,ログインしたり,直
接手動による
編集を行う事なく,Web サーバ上のloadbalancer.xml の内容
を変更
# asadmin apply-http-lb-changes lb-config
送信を再会したい場合,下記を実行
# asadmin set "cluster1.server-ref.instance2.lb-enabled=true"
cluster1.server-ref.instance2.lb-enabled = true
# asadmin apply-http-lb-changes lb-config
例2:クラスタ内に新規インスタンスを追加
# asadmin create-instance --nodeagent sw-103 --cluster cluster1 instance
# asadmin apply-http-lb-changes lb-config
loadbalancer.xml に下記の行が追加され変更される
<instance disable-timeout-in-minutes="30" enabled="false"
listeners="http://
sw-103:38082
https://sw-103:38183" name="instance3" weight="100"/>
寺田
On 2009/12/25, at 11:25, 小向 政廣 wrote:
> 寺田さん
>
> ご回答ありがとうございます。
>
> 2.1.1についても検証は行なっていたのですが、結果
> は同じでした。
> (2.1.1ではenableCookiesの設定を追加しなくても動作す
> るようになっていることについては
> 確認済み)
>
> Sun GlassFish Enterprise Server v2.1.1 ((v2.1 Patch06)(9.1_02
> Patch12)) (build b31g-fcs)
>
> apacheからの振り先が1インスタンスの場合は動作する
> のですが、2インスタンスにするとセッショ
> ンに値の保持ができなくなる、という挙動しており
> ます。
> (クラスタ以前にセッションに値を保持できない)
>
> 以下についても組合せ、いくつかパターンを試しま
> したが、いずれも駄目でした。
>
> web.xmlに<distributable/>する
> jvmRouteを設定して、jsessionidにインスタンス名を追加
> する。
>
> http://xxxx/app/;jsessionid=39b6a4a9da31e552a92d3ff8066d.<インスタ
> ンス名>
>
>
> -----Original Message-----
> From: Yoshio.Terada_at_Sun.COM [mailto:Yoshio.Terada_at_Sun.COM]
> Sent: Friday, December 25, 2009 2:43 AM
> To: discuss_ja_at_glassfish.dev.java.net
> Subject: Re: glassfishのクラスタリングについて
>
> 小向さん
>
> GlassFish のどちらのバージョンをご使用頂いているか
> わからないのですが、仮に最新のバージョンをご使
> 用
> 頂いていないのであれば、GlassFish v2.1.1で試してみて
> 頂けないでしょうか。
>
> GlassFish v2.1.1 のダウンロード
> Sun 製品版:
> https://glassfish.dev.java.net/downloads/v2.1.1-final.html
> GlassFish OSS 版:
> http://www.sun.com/software/products/appsrvr/get_it.jsp
>
> 詳細:
> **********************************************************************
> GlassFish V2
> Normally GlassFish 2 encodes session id to the URL automatically, if
> the browser does not support cookies. Additional it is possible to
> set the property enableCookies to never or always append the session
> id to the URL.
> But this property setting can be confusing, because of bug with
> newly created sessions [1]. And also the property enableURLRewriting
> is not working as expected.
>
>
> GlassFish V2.1
> GlassFish 2.1 fix this unexpected behaviour and ensures for all
> cases, that setting enableCookies to true only stores the session id
> in the cookie or false only encode session id to the URL.
> As this version does also not support enableURLRewriting, the
> automatic handling of the session id is not possible anymore.
> So if your application should support all clients, even those which
> do not accept cookies, you must add the following to the sun-web.xml
> file [2].
> <session-config>
> <session-properties>
> <property name="enableCookies" value="false" />
> </session-properties>
> </session-config>
> The problem now is that all application URLs contain the session id,
> which means:
> ▪ User create bookmarks including the session id
> ▪ Also when a webmaster add a backlink in his site
> ▪ Crawling services save the URLs always with session id
>
>
> GlassFish V2.1 Patch
> If you want to avoid these problems and still run your application
> with automatically handling of the session id, you can use the
> unoffical Patch [3] provided by Jan Luehe [4], which backports
> GlassFish 3 support for enableURLRewriting to the current version.
> Just put this jar somewhere in the file system and define the path
> in the Attribute classpath-prefix of the Tag java-config [5].
>
>
> GlassFish V2.1.1
> The problem does not occur in this version anymore. The automatic
> handling of the session id works even without patch and without
> special properties as usal.
>
>
> GlassFish V3
> GlassFish 3 provides better control of session id handling, because
> it supports enableCookies and enableURLRewriting [6]. As default
> both are true, so for automatic detection of cookie based or url
> based session id is no entry in sun-web.xml neccessary.
>
> Conclusion
> I prefere the solution of automatic url rewriting, even for SEO
> applications. The site I-Coding itself is with serveral keys in
> Googles top 10, even though it uses JSF and Session IDs. Furthermore
> webmasters or developers can also submit application URLs with an
> sitemap file to the main search engines.
> Resources
>
>
> [1] Issue 3972
>
> [2] /WEB-INF/sun-web.xml
>
> [3] Patch for GlassFish V2.1
>
> https://glassfish.dev.java.net/nonav/issues/showattachment.cgi/2265/patch.jar
>
> [4] Jan Luehe's Blog
>
> [5] /domains/domain1/config/domain.xml
>
> [6] Issue 4394
>
>
> On 2009/12/24, at 18:52, 小向 政廣 wrote:
>
>> 始めまして、小向と申します。
>>
>> GlassFish 2.1 でクラスタリングを行なおうとしていま
>> すが、ここ1ヵ月はまってしまっており
>> 困っております。
>>
>> どなたかお分かりになる方がいらっしゃれば、ご教
>> 授をお願い致します。
>>
>> ■構成・確認方法
>> Linuxサーバ2台で、それぞれapache2.2.13、GlassFish2.1を
>> インストールし、GlassFish側
>> でクラスタ構成を行い動作確認をしました。
>>
>> apacheはmod_proxyを使い、apache2台から、GlassFishの2イン
>> スタンスにリクエストを割り
>> 振るという構成にしております。
>>
>> 確認したアプリは、GlassFishについているサンプル
>> clusterjspと同じように、画面で登録し
>> た値をセッションに追加し続けていき、それをその
>> まま画面に表示するというシンプルなもの
>> です(ただし、jspではなくサーブレット)。
>>
>> GlassFishインスタンス1に処理が割り振られたのを確
>> 認
>> してから、GlassFishインスタンス1
>> を落とし、ブラウザの画面をリロード、GlassFishイン
>> スタンス2にリクエストが振られ、登録
>> した内容が保持されたことを確認する、という方法
>> でセッションの引継ぎを確認しました。
>>
>> ■状況
>> cookieが使えるクライアントからアクセスして動作確
>> 認した場合は問題がなかったのですが、
>> cookieが使えないクライアント(=携帯)からアクセ
>> スして、動作確認すると、クラスタ間でセッ
>> ション情報が引き継がれないという状態になってお
>> ります。
>>
>> cookieが使えないクライアント用に、アプリも若干修
>> 正、セッション保持のためjsessionidを使
>> うようにしています。
>>
>> GlassFish 2.1ではバグがあるらしく、cookieなしの場合
>> は、そのままでは動かなかったので
>> sun-web.xmlに以下の設定を追加しています。
>>
>> <session-config>
>> <session-properties>
>> <property name="enableCookies" value="false" />
>> </session-properties>
>> </session-config>
>>
>> apacheはmod_proxyを使っており、以下のように設定しま
>> した。
>>
>> ProxyPass /xxx balancer://clusterXxx/xxx stickysession=JSESSIONID
>> ProxyPreserveHost On <Proxy balancer://clusterXxx > BalancerMember
>> http://yyy01:23151loadfactor=1 route=xxx11 BalancerMember
>> http://yyy02:23151loadfactor=1 route=xxx21 </Proxy>
>>
>> GlassFishのソースはダウンロードしてきて見ているの
>> ですが、問題の箇所がどこなのか検討
>> がつかず・・・
>>
>> そもそもcookieが使えないとクラスタリングできな
>> い、というオチな気もするのですが、きちんと
>> 説明できておらず・・・
>>
>> どなたかお分かりになる方がいらっしゃいました
>> ら、ご教授よろしくお願い致します。
>>
>>
>