Archive for 12月, 2009
GlassFishのロードバランサプラグインで Apache と動作確認 Part2 (GlassFish 設定編)
GlassFishのロードバランサプラグインで Apache と連携 Part1 (Apache 設定編)
に引き続きGlassFish の設定と動作確認をしてみます。
GlassFish の設定と動作確認
実際に GlassFish 上でクラスタ構成を設定し、動作を確認してみましょう。
ドメインの起動
Part 1 で作成したドメインを起動してください。
dashost > asadmin start-domain clusterDomain ドメイン clusterDomain を起動しています。お待ちください。 デフォルトのログの場所は /export/home/appserv/domains/clusterDomain/logs/server.log です。 出力を /export/home/appserv/domains/clusterDomain/logs/server.log にリダイレクトしています ドメイン clusterDomain が起動しました。 ドメイン [clusterDomain] はその設定で [Sun GlassFish Enterprise Server v2.1.1 ((v2.1 Patch06)(9.1_02 Patch12)) (build b31g-fcs)] を実行しています。ログは [/export/home/appserv/domains] にあります。 管理コンソールは [http://localhost:5048] で使用できます。 “asadmin” コマンドにも同じポート [5048] を使用します。 ユーザーの Web アプリケーションは次の URL で使用できます: [http://localhost:5080 https://localhost:5081 ]。 次の web-contexts を使用できます: [/web1 /__wstx-services ]。 標準の JMX クライアント (JConsole など) はドメイン管理のために JMXServiceURL: [service:jmx:rmi:///jndi/rmi://dashost:5086/jmxrmi] に接続できます。 ドメインは少なくとも次のポートで接続を待機しています: [5080 5081 5048 5037 5038 5039 5086 ]。 ドメインはアプリケーションサーバークラスタおよびその他のスタンドアロンインスタンスをサポートします。 |
ノードエージェントの作成
次に、ドメインに所属するノードエージェントを2つ作成してください。
それぞれのノードエージェントが稼働するマシン上でコマンドを実行してください。
nodeagent1 の作成と起動
nodeagent1 > asadmin create-node-agent nodeagent1 コマンド create-node-agent は正常に実行されました。 nodeagent1 > asadmin start-node-agent nodeagent1 出力を /export/home/appserv/nodeagents/nodeagent1/agent/logs/server.log にリダイレクトしています アプリケーション出力を /export/home/appserv/nodeagents/nodeagent1/agent/logs/server.log にリダイレクトします コマンド start-node-agent は正常に実行されました。 |
nodeagent2 の作成と起動
nodeagent2 > asadmin create-node-agent nodeagent2 コマンド create-node-agent は正常に実行されました。 nodeagent2 > asadmin start-node-agent nodeagent2 出力を /export/home/appserv/nodeagents/nodeagent2/agent/logs/server.log にリダイレクトしています アプリケーション出力を /export/home/appserv/nodeagents/nodeagent2/agent/logs/server.log にリダイレクトします コマンド start-node-agent は正常に実行されました。 |
クラスタとインスタンスの作成
ドメイン管理サーバでクラスタを1つ作成してください。
クラスタ作成後、各ノードエージェント上にそれぞれ1つずつ
クラスタに所属するインスタンスを作成してください。
dashost > asadmin create-cluster cluster1 コマンド create-cluster は正常に実行されました。 dashost > asadmin create-instance –nodeagent nodeagent1 –cluster cluster1 instance1 コマンド create-instance は正常に実行されました。 dashost > asadmin create-instance –nodeagent nodeagent2 –cluster cluster1 instance2 コマンド create-instance は正常に実行されました |
クラスタの起動
作成したクラスタを起動してみましょう。
dashost > asadmin start-cluster cluster1 クラスタ化されたインスタンス instance1 の起動に成功しました。 クラスタ化されたインスタンス instance2 の起動に成功しました。 コマンド start-cluster は正常に実行されました。 |
サンプルアプリケーションのデプロイ
次に、作成したクラスタに対してサンプルのアプリケーションをデプロイします。
dashost > asadmin deploy –target cluster1 –availabilityenabled=true /sun/glassfish-v2.1.1/samples/quickstart/clusterjsp/clusterjsp.ear コマンド deploy は正常に実行されました。 |
ロードバランサプラグインの設定と設定ファイルのエクスポート
続いて、ロードバランサの設定を作成しデプロイしたアプリケーションに対して
負荷分散を行う設定をします。
dashost > asadmin create-http-lb-config –target cluster1 lb-config コマンド create-http-lb-config は正常に実行されました。 dashost > asadmin enable-http-lb-server cluster1 コマンド enable-http-lb-server は正常に実行されました。 dashost > asadmin enable-http-lb-application –name clusterjsp cluster1 コマンド enable-http-lb-application は正常に実行されました。 dashost > asadmin create-http-health-checker –interval 10 –config lb-config cluster1 コマンド create-http-health-checker は正常に実行されました。 dashost > asadmin export-http-lb-config –config lb-config /tmp/loadbalancer.xml 生成されたファイルの場所: /tmp/loadbalancer.xml コマンド export-http-lb-config は正常に実行されました。 |
ここで,出力されたloadbalancer.xmlファイルを Apache 上にコピーする事で
負荷分散機能を利用することができるようになります。
しかし、手動でファイルをコピーする方法は古い方法ですので、
手動でファイルをコピーするのではなく、下記の方法を利用してください。
apache > cp /tmp/loadbalancer.xml /usr/local/apache2.2.14/conf/loadbalancer.xml |
autoapplyenabled機能の有効化
下記コマンドを実行すると Web Server にログインして loadbalancer.xml を
直接編集したり、手動でコピーしなくても、asadmin コマンドから直接
設定変更内容を更新する事ができるようになります.
dashost > asadmin create-http-lb –target cluster1 –autoapplyenabled=true –devicehost apache.japan.sun.com –deviceport 443 lb-config コマンド create-http-lb は正常に実行されました。 dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 dashost > |
apply-http-lb-changes を実行すると、直ちに loadbalancer.xml が
更新されるようになります。
Apache 上で更新された loadbalancer.xml は下記の通りです。
apache > cat /usr/local/apache2.2.14/conf/loadbalancer.xml <?xml version=”1.0″ encoding=”UTF-8″?> <!DOCTYPE loadbalancer PUBLIC “-//Sun Microsystems Inc.//DTD Sun Java System Application Server 9.1//EN” “sun-loadbalancer_1_2.dtd”> <loadbalancer> <cluster name=”cluster1″ policy=”round-robin”> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent1.japan.sun.com:38080 https://nodeagent1.japan.sun.com:38181″ name=”instance1″ weight=”100″/> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent2.japan.sun.com:38080 https://nodeagent2.japan.sun.com:38181″ name=”instance2″ weight=”100″/> <web-module context-root=”/clusterjsp” disable-timeout-in-minutes=”30″ enabled=”true”/> <health-checker interval-in-seconds=”30″ timeout-in-seconds=”10″ url=”/”/> </cluster> <property name=”response-timeout-in-seconds” value=”60″/> <property name=”reload-poll-interval-in-seconds” value=”60″/> <property name=”https-routing” value=”false”/> <property name=”require-monitor-data” value=”false”/> <property name=”active-healthcheck-enabled” value=”false”/> <property name=”number-healthcheck-retries” value=”3″/> <property name=”rewrite-location” value=”true”/> <property name=”rewrite-cookies” value=”false”/> </loadbalancer> <!– This file was generated on: [Fri Dec 25 18:00:39 JST 2009]. Debugging Tips: By default, instances and web-modules are not enabled. Please enable them manually if you have not done that using asadmin. –> apache > |
動作確認1: 高可用性のテスト
ブラウザから Apache の稼働するマシンへアクセスしてください。
ブラウザで Apache が稼働するマシンへ接続
http://apache.japan.sun.com/clusterjsp/ Served From Server instance: instance1 |
表示された画面から”Served From Server instance“のエントリを
確認してください。この例ではinstance1でアプリケーションが
稼働していることが分かります。
続いて、
Enter session attribute data:
にセッション情報を追加してください。
セッション情報を追加した後、稼働中のサーバインスタンス(instance1)
を停止します。
dashost > asadmin stop-instance instance1 コマンド stop-instance は正常に実行されました. |
ブラウザをリロードするか,[Reload Page]ボタンを押してください。
“Served From Server instance:”のエントリが instance1からinstance2に
変更されているかと思います。また同時にセッション情報も引き継がれていること
が確認できるかと思います。
ここまでくれば、高可用性テストは完了です。
動作確認2:ドメイン管理サーバから Apache の負荷分散設定を変更するテスト
ここでは、asadmin コマンドだけを使って Apache が稼働するシステムに
ログインすることなく、負荷分散設定を変更するテストを行います。
まず、ドメイン管理サーバから instance2 に対するリクエストを送信しないように
設定します。
dashost > asadmin set “cluster1.server-ref.instance2.lb-enabled=false” cluster1.server-ref.instance2.lb-enabled = false dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
コマンドを実行すると、loadbalancer.xml の instance2 に該当する
設定箇所が変更されます。 (enabled が false)
apache > cat loadbalancer.xml|grep nodeagent2 <instance disable-timeout-in-minutes=”30″ enabled=”false” listeners=”http://nodeagent2.japan.sun.com:38080 https://nodeagent2.japan.sun.com:38181″ name=”instance2″ weight=”100″/> |
instance2 に対する負荷分散を再会させたい場合,下記を実行してください。
dashost > asadmin set “cluster1.server-ref.instance2.lb-enabled=true” cluster1.server-ref.instance2.lb-enabled = true dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
再度、Apache の loadbalancer.xml を確認してみます。
instance2 に該当する設定箇所の enabled が true に変更されている事を確認できます。
apache > cat loadbalancer.xml | grep nodeagent2 <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent2.japan.sun.com:38080 https://nodeagent2.japan.sun.com:38181″ name=”instance2″ weight=”100″/> |
動作確認3:新規インスタンス追加時の負荷分散振り先の追加テスト
最後に、インスタンスを追加してクラスタ構成を変更し負荷分散の対象を増やすテストを行います。
まず、クラスタに対して新規インスタンスを追加して起動してください。
起動したのち、apply-http-lb.-changes を実行してください。
コマンドを実行すると、負荷分散の振り先が追加されます。
dashost > asadmin create-instance –nodeagent nodeagent1 –cluster cluster1 instance3 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 は正常に実行されました。 dashost > asadmin create-instance –nodeagent nodeagent2 –cluster cluster1 instance4 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 は正常に実行されました。 dashost > asadmin start-instance instance3 コマンド start-instance は正常に実行されました。 dashost > asadmin start-instance instance4 コマンド start-instance は正常に実行されました。 dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
コマンドを実行後、loadbalancer.xml を確認してみましょう。
追加したインスタンスに対する振り先設定が追加されています。
apache > cat loadbalancer.xml <?xml version=”1.0″ encoding=”UTF-8″?> <!DOCTYPE loadbalancer PUBLIC “-//Sun Microsystems Inc.//DTD Sun Java System Application Server 9.1//EN” “sun-loadbalancer_1_2.dtd”> <loadbalancer> <cluster name=”cluster1″ policy=”round-robin”> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent1.japan.sun.com:38080 https://nodeagent1.japan.sun.com:38181″ name=”instance1″ weight=”100″/> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent2.japan.sun.com:38080 https://nodeagent2.japan.sun.com:38181″ name=”instance2″ weight=”100″/> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent1.japan.sun.com:38081 https://nodeagent1.japan.sun.com:38182″ name=”instance3″ weight=”100″/> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent2.japan.sun.com:38081 https://nodeagent2.japan.sun.com:38182″ name=”instance4″ weight=”100″/> <web-module context-root=”/clusterjsp” disable-timeout-in-minutes=”30″ enabled=”true”/> <health-checker interval-in-seconds=”30″ timeout-in-seconds=”10″ url=”/”/> </cluster> <property name=”response-timeout-in-seconds” value=”60″/> <property name=”reload-poll-interval-in-seconds” value=”60″/> <property name=”https-routing” value=”false”/> <property name=”require-monitor-data” value=”false”/> <property name=”active-healthcheck-enabled” value=”false”/> <property name=”number-healthcheck-retries” value=”3″/> <property name=”rewrite-location” value=”true”/> <property name=”rewrite-cookies” value=”false”/> </loadbalancer> <!– This file was generated on: [Fri Dec 25 18:22:35 JST 2009]. Debugging Tips: By default, instances and web-modules are not enabled. Please enable them manually if you have not done that using asadmin. –> apache > ※ 新しく追加したインスタンスの設定が enabled=”false”になっている場合、 dashost > asadmin set “cluster1.server-ref.instance3.lb-enabled=true” |
このように、ロードバランサプラグインを利用し、自動適用の設定を行うと、
アプリケーションサーバ側のクラスタ内の変更に対して、前段の Web サーバ側に
一切ログインせずに、振り先を自由に変更できるため、導入時には若干面倒ですが、運用時はとても楽になります。
また、お気づきの事と思いますが1度設定を行うと、Apache のサーバにログインする必要がないばかりか、負荷分散設定を変更した際に、Apache の再起動なども必要としていないことがわかるかと思います。
これは、loadbalancer.xml の更新をチェックする内部プログラムが別途稼働しており、更新があった場合に、動的に設定を有効にする仕組みが導入されているためです。これで、Web サーバ側の管理が随分楽になるのではないかと思います。
ぜひ、上記を参考にお試しください。
最後に、今回は GlassFish のロードバランサプラグインを Apache にインストールしていますが、Sun Java System Web Server でも autoapply の機能は使うことができますのでご安心ください。
追記:
正直、ちょっと面倒という方は、Sun GlassFish Enterprise Server with HADB を使ってみるのもいいかもしれません、with HADB 版ではインストーラからロードバランサプラグインのインストールもかんたんにできるようになっていますので、試す価値はあるかもしれません。
with HADB 版を利用しない場合は、上記の方法をご利用ください。
GlassFishのロードバランサプラグインで Apache と連携 Part1(Apache 設定編)
今日は Apache と GlassFish の連携を行いたい方にGlassFish のロードバランサプラグインを使った連携方法について紹介します。GlassFish のロードバランサプラグインを使うと、運用がとても楽になります。
例えば、GlassFish 側で提供しているサービスを停止したい場合、
GlassFish 側で設定を無効にした後、Apache にログインして設定を
しなおさなくても、設定変更を Apache 側に送信することができるように
なります。例えば、インスタンスを4つもつクラスタで、一つずつ
インスタンスを再起動して、ローリングアップグレードを行う場合を
考えてみましょう。負荷分散設定を無効にして、Web サーバ側の
設定変更を下記のたった2つのコマンドを実行するだけでよくなります。
GlassFish のロードバランサプラグインを使わない場合は、Apache が
稼働するマシンにログインして mod_proxy 等の設定を手動で変更して
などの作業を行っていたかと思いますが、ロードバランサプラグインを
使用するともうそのような面倒なことはしなくてよくなります。
dashost > asadmin set “cluster1.server-ref.instance2.lb-enabled=false” cluster1.server-ref.instance2.lb-enabled = false dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
この環境を作る手間は大変ですが、運用がかなり楽になりますので、
ぜひ、お試しください。また、下記の手順は全て asadmin のコマンドを
使用して設定していますので、設定が複雑と思われるかもしれませんが、
基本的には、下記の手順に従い設定すれば環境が構築できるかと思いますので、
ぜひチャレンジしてみてください。また慣れれば大きなパワーを発揮する
asadmin もぜひこの機会にお試しください。
必要なソフトウェア:
● apache2.2.14
● OpenSSL/0.9.8k Install:
インストール場所:/usr/local/ssl
● GlassFish:
インストール場所:/sun/glassfish-v2.1.1
http://www.sun.com/appserver より入手
● GlassFish LB Plugin (aslb-9.1.1-b**.jar)の入手先
http://download.java.net/javaee5/external/SunOS/aslb/jars/ (Solaris SPARC用)
http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/(Solarix x86用)
http://download.java.net/javaee5/external/Linux/aslb/jars/ (Linux 用)
http://download.java.net/javaee5/external/WINNT/aslb/jars/ (Windows 用)
必要なシステム:
今回の説明で登場するマシンの役割とホスト名、また各ホストで実行する際の
コマンドプロンプトを紹介します。複数のマシンがでてきますので、実行時
わかりやすくするため、プロンプトを変えて表示していますので、プロンプトを
確認し、どこで実行されているかを確認してください。
役割 | ホスト名 | 実行プロンプト |
ドメイン管理サーバ: | dashost.japan.sun.com | dashost > |
認証局(CA) : | ca-admin.japan.sun.com | ca-admin > |
Apache Web サーバ: | apache.japan.sun.com | apache > |
ノードエージェント1: | nodeagent1.japan.sun.com | nodeagent1 > |
ノードエージェント2: | nodeagent2.japan.sun.com | nodeagent2 > |
環境変数 (das/nodeagent1/nodeagent2 全てのマシンで下記を設定):
下記の環境変数はドメイン管理サーバ、各ノードエージェントで全て同じ設定を
してください。
dashost > vi .tcshrc set path=(/usr/sfw/bin /sun/glassfish-v2.1.1/bin /usr/jdk/jdk1.6.0_17/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_17 setenv AS_ADMIN_USER clusterAdmin setenv AS_ADMIN_PASSWORDFILE /export/home/appserv/.passwordfile setenv AS_ADMIN_HOST dashost.japan.sun.com setenv AS_ADMIN_PORT 5048 |
パスワードファイル(das/nodeagent1/nodeagent2 全てのマシンで下記を設定):
また、管理者のパスワードの毎回の入力を省略するため、あらかじめパスワードを
設定しておきます。AS_ADMIN_PASSWORD は GUI のログイン画面等で入力する
パスワードで AS_ADMIN_MASTERPASSWORDは SSL の証明書データベースを
操作する際に使用するパスワードです。
dashost > vi .passwordfile AS_ADMIN_PASSWORD=adminadmin AS_ADMIN_MASTERPASSWORD=changeit |
Apache 2.2.14 のコンパイル
SSL と マルチコア対応のオプションを有効にして make します。
apache > ./configure –with-ssl=/usr/local/ssl –prefix=/usr/local/apache2.2.14 –enable-ssl –enable-so –with-included-apr
apache > make |
Apache のサーバ名を編集
apache >vi /usr/local/apache2.2.14/conf/httpd.conf ServerName apache.japan.sun.com |
Apache の動作確認
Apache を起動し、ヘッダの内容を確認してみましょう。
apache > /usr/local/apache2.2.14/bin/apachectl start |
TELNET による接続確認と Server ヘッダの内容確認
apache > telnet localhost 80 Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’. GET / HTTP/1.1 Host: apache.japan.sun.com HTTP/1.1 200 OK <html><body><h1>It works!</h1></body></html> |
他の設定を行うため、一時的に Apache を停止しておきます。
apache > /usr/local/apache2.2.14/bin/apachectl stop |
クラスタ対応の GlassFish 新規ドメインの作成とサーバ証明書の抽出
次に、クラスタに対応した新規ドメインを作成します。
dashost > asadmin create-domain –portbase=5000 –profile=cluster clusterDomain Admin のポート 5048 を使用しています。 HTTP Instance のポート 5080 を使用しています。 JMS のポート 5076 を使用しています。 IIOP のポート 5037 を使用しています。 HTTP_SSL のポート 5081 を使用しています。 IIOP_SSL のポート 5038 を使用しています。 IIOP_MUTUALAUTH のポート 5039 を使用しています。 JMX_ADMIN のポート 5086 を使用しています。 コマンド行または環境で の指定どおりにプロファイル cluster を使用してドメインを作成しています。 指定されたロケール [ja_JP] のファイルが [/sun/glassfish-v2.1.1/lib/install/templates/locales/ja_JP/index.html] に見つかりませんでした。デフォルト (en_US) の index.html を使用します。 使用するセキュリティーストア: JKS ドメイン clusterDomain が作成されました。 dashost > |
次に GlassFish ドメイン管理サーバのサーバ証明書を抽出します.
この際,管理ガイドには certutil コマンドを使用した例が
記載されておりますが,certutil コマンドは GlassFish
with HADB のインストーラを使用してインストールした場合のみ
利用可能です.そこで HADB を使用しないインストーラを
使用する場合は,JavaSE 付属の keytool を使用して証明書をエクスポートします.
dashost > cd domains/clusterDomain/config/ dashost > keytool -export -rfc -alias s1as -keystore keystore.jks -file sjas.crt キーストアのパスワードを入力してください: [changeit] 証明書がファイル <sjas.crt> に保存されました。 dashost > |
Apache の SSL 設定とLB プラグインの設定
ロードバランサモジュールの設定
Apache の httpd.conf に対してロードバランサプラグインが使用する
モジュールを読み込ませる設定を行います。
apache > vi /usr/local/apache2.2.14/conf/httpd.conf
…… |
GlassFish のサーバ証明書のコピーとシリアル番号の確認
GlassFish でエクスポートしたサーバ証明書 (sjsas.crt) を Apache の
証明書管理ディレクトリにコピーします。
コピーした後、GlassFish のサーバ証明書の内容を確認してみましょう。
ここで,GlassFish のサーバ証明書からシリアル番号(下記では:4b345534)
を覚えておいてください。
apache > mkdir /usr/local/apache2.2.14/conf/ssl.crt DAS で取得した自己署名サーバ証明書(sjsas.crt)を事前に FTP 等で Apache の稼働するサーバへ転送 apache > mv sjsas.crt /usr/local/apache2.2.14/conf/ssl.crt/ apache > cd /usr/local/apache2.2.14/conf/ssl.crt/ apache > keytool -printcert -file sjsas.crt 所有者: CN=dashost, OU=Sun GlassFish Enterprise Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US 発行者: CN=dashost, OU=Sun GlassFish Enterprise Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US シリアル番号: 4b345534 有効期間の開始日: Fri Dec 25 15:01:24 JST 2009 終了日: Mon Dec 23 15:01:24 JST 2019 証明書のフィンガープリント: MD5: 84:FD:B4:E9:B7:EF:88:F2:04:B0:20:23:9D:D9:A5:9E SHA1: DC:48:8E:C4:A2:AB:C2:AF:FC:8B:C5:54:59:F5:39:14:0D:82:E3:BE 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: FA EA 09 87 42 BC D8 04 C3 88 B1 8E 93 2D 0A 3A ….B……..-.: 0010: 74 3B 19 07 t;.. ] ] apache > |
Apache SSL設定に対する LB プラグイン設定追加
下記に示す、<Location /lbconfigupdate>から始まる
数行をコピーし、それ以外の箇所を適切に編集してください。
ここで1点注意して頂きたいのはシリアル番号の入力箇所です。
上記で確認したシリアル番号は小文字で表示されていますが,
下記のApache の httpd-ssl.conf ファイル中には全て大文字に変換して
記載してください.
(例:4b345534 → 4B345534 に変更)
apache > vi /usr/local/apache2.2.14/conf/extra/httpd-ssl.conf
<VirtualHost apache.japan.sun.com:443> <—- 修正 下記の行をファイルの最後に追加 <Location /getmonitordata> |
※ 注意:ここでは GlassFish のインストール時に自動的に
作成されるデフォルトのサーバ証明書を使った時の例を記載
しています。仮に GlassFish のドメイン管理サーバのサーバ
証明書を入れ替えている場合は、必要におうじて、SSL_CLIENT_S_DN_O
、SSL_CLIENT_S_DN_OU等のエントリも修正してください。
次に httpd-ssl.conf を有効にします。
httpd.conf ファイルを修正してください。 (SSL の有効化)
apache > vi /usr/local/apache2.2.14/conf/httpd.conf
# Secure (SSL/TLS) connections |
次に httpd-mpm.conf を有効にします。
httpd.conf ファイルを修正してください。(マルチプロセッサ対応)
apache > vi /usr/local/apache2.2.14/conf/httpd.conf
# Server-pool management (MPM specific) |
次に Apache の起動時に読み込むライブラリパスを追加してください。
apache > vi /usr/local/apache2.2.14/bin/envvars LD_LIBRARY_PATH=”/usr/local/apache2.2.14/lib: /usr/local/apache2.2.14/modules:/usr/lib/mps:$LD_LIBRARY_PATH” |
OpenSSL でプライベート認証局(CA)の構築
認証局(CA) の構築の準備 (openssl.cnfの編集)をします。
設定ファイル中から下記の行を編集してください。
[ usr_cert ]
basicConstraints=CA:TRUE <—FALSEから変更 |
プライベートの認証局(CA) の構築
ca-server > ./misc/CA.pl -newca CA certificate filename (or enter to create) Making CA certificate … You are about to be asked to enter information that will be incorporated Please enter the following ‘extra’ attributes Enter pass phrase for ./demoCA/private/cakey.pem:[password] X509v3 Basic Constraints: Write out database with 1 new entries |
Apache 用のサーバ証明書の作成(CSRの作成)
まず、Apache 上で秘密鍵を生成します。
apache > mkdir /usr/local/apache2.2.14/conf/ssl.key apache > cd /usr/local/apache2.2.14/conf/ssl.key apache > openssl genrsa -des3 -out apache.japan.sun.com.key 2048 Generating RSA private key, 2048 bit long modulus ……………………+++ …….+++ e is 65537 (0x10001) Enter pass phrase for apache.japan.sun.com.key:[password] Verifying – Enter pass phrase for apache.japan.sun.com.key:[password] apache > ls apache.japan.sun.com.key |
Apache 上で認証局(CA)に提出する CSR の作成
認証局に提出する CSR を生成します。
apache >openssl req -new -key apache.japan.sun.com.key -subj “/emailAddress=webmaster@japan.sun.com/CN=apache.japan.sun.com/OU=Software Practice/O=Sun Microsystems/L=Setagaya/ST=Tokyo/C=JP” -out apache.japan.sun.com.csr Enter pass phrase for apache.japan.sun.com.key:[password] apache > pwd |
認証局(CA) でサーバ証明書の署名の準備
認証局(CA) の設定を変更し、サーバ証明書を署名する準備をします。
ca-admin > vi openssl.cnf
[ usr_cert ] |
認証局(CA) で Apache のサーバ証明書を署名
Apache 上で生成した CSR を認証局(CA)で署名を行います。
認証局(CA) が稼働するマシンまで Apache 上で生成した
CSR ファイルを FTP 等でコピーしてください。
ca-server > openssl ca -config ./openssl.cnf -in
./apache.japan.sun.com.csr -keyfile ./demoCA/private/cakey.pem Using configuration from ./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:93 Validity Not Before: Dec 25 06:58:47 2009 GMT Not After : Dec 25 06:58:47 2010 GMT Subject: countryName = JP stateOrProvinceName = Tokyo organizationName = Sun Microsystems organizationalUnitName = Software Practice commonName = apache.japan.sun.com emailAddress = webmaster@japan.sun.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 1E:1F:C2:95:F6:29:2C:53:54:27:32:66:FF:59:60:FA:E1:3B:C5:19 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 Dec 25 06:58:47 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 ca-server > |
認証局(CA)から取得した、署名済みサーバ証明書を証明書ディレクトリへコピー
認証局で署名された署名済みのサーバ証明書を Apache まで FTP 等でコピーして
下さい。ファイルを転送後、Apache の証明書管理ディレクトリ(ssl.crt)へ
コピーします。
apache > mv apache.japan.sun.com.signed-server-cert
/usr/local/apache2.2.14/conf/ssl.crt/ |
署名済みサーバ証明書の内容を確認
署名済みのサーバ証明書の内容を確認しておきます。
apache > cat apache.japan.sun.com.signed-server-cert
Certificate: Data: Version: 3 (0x2) Serial Number: cd:ea:db:f4:c8:e3:93:93 Signature Algorithm: sha1WithRSAEncryption Issuer: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM Validity Not Before: Dec 25 06:58:47 2009 GMT Not After : Dec 25 06:58:47 2010 GMT Subject: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=apache.japan.sun.com/emailAddress=webmaster@japan.sun.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:c9:a1:75:01:3b:44:d8:2e:bb:ff:97:fa:c0:09: 96:d0:ae:9f:92:3a:d8:f0:7c:77:bf:2b:8d:82:14: 3e:14:ec:26:01:ab:68:ca:6a:ab:1a:e6:37:08:89: 2a:73:83:d6:61:7e:0c:37:4c:9c:35:38:e4:20:a8: 25:df:60:cd:7c:ea:17:7c:1d:5b:9f:0b:40:3a:d7: fc:2e:e4:af:66:62:c3:fd:46:a7:31:11:68:96:f4: cb:c3:7d:81:bd:37:b8:53:ef:cc:68:78:51:9d:a2: 48:f5:80:4e:d6:49:3b:8b:0d:db:81:8e:58:fd:2c: bf:47:90:87:6d:40:e6:dd:8c:63:c2:bd:62:d4:aa: 70:4a:b0:91:ec:61:d4:b5:18:ea:b6:2b:47:83:68: 72:f7:01:d6:ad:aa:44:85:34:8a:f6:9d:99:25:57: 02:32:02:02:8d:2c:98:bc:99:cb:ac:ce:a5:b3:27: 46:ca:4c:ee:af:41:14:8f:9c:62:fc:06:20:c3:88: 53:f1:b2:3a:6e:7c:75:4b:8f:da:83:8a:34:d4:29: 40:6d:ad:85:e5:c8:6e:f8:21:8c:7c:ec:3c:00:b6: 07:e1:97:78:48:04:82:80:19:28:28:12:04:9c:b1: f6:4f:38:44:74:41:98:ab:e6:5f:8d:c2:84:a6:a8: 4e:8d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 1E:1F:C2:95:F6:29:2C:53:54:27:32:66:FF:59:60:FA:E1:3B:C5:19 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 2c:49:f2:d9:90:a8:1d:a5:0d:3b:14:1c:ef:1c:b2:5d:35:66: 2f:9f:ca:b1:56:9f:6d:5f:84:70:66:bf:44:da:6e:c4:c9:08: 81:d1:f7:6e:d0:6c:35:5d:45:5a:52:1c:6c:5f:d0:24:fa:15: c2:88:a9:64:b7:15:e5:ec:d3:a7:2e:53:90:c0:d1:16:fc:cc: 58:a1:65:08:c9:4c:34:38:e2:57:3f:b6:e8:db:f8:92:62:c2: fd:59:81:7d:d7:aa:1a:43:20:1b:b7:18:09:97:06:47:d9:3a: 09:14:bb:63:18:0f:15:81:a2:0d:89:cc:32:f9:57:88:78:6f: 72:d8 -----BEGIN CERTIFICATE----- MIIDvzCCAyigAwIBAgIJAM3q2/TI45OTMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTIyNTA2NTg0N1oXDTEwMTIyNTA2NTg0N1owgZsxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFGFwYWNoZS5qYXBhbi5zdW4uY29t MSYwJAYJKoZIhvcNAQkBFhd3ZWJtYXN0ZXJAamFwYW4uc3VuLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMmhdQE7RNguu/+X+sAJltCun5I62PB8 d78rjYIUPhTsJgGraMpqqxrmNwiJKnOD1mF+DDdMnDU45CCoJd9gzXzqF3wdW58L QDrX/C7kr2Ziw/1GpzERaJb0y8N9gb03uFPvzGh4UZ2iSPWATtZJO4sN24GOWP0s v0eQh21A5t2MY8K9YtSqcEqwkexh1LUY6rYrR4NocvcB1q2qRIU0ivadmSVXAjIC Ao0smLyZy6zOpbMnRspM7q9BFI+cYvwGIMOIU/GyOm58dUuP2oOKNNQpQG2theXI bvghjHzsPAC2B+GXeEgEgoAZKCgSBJyx9k84RHRBmKvmX43ChKaoTo0CAwEAAaOB jzCBjDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0E HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFB4fwpX2 KSxTVCcyZv9ZYPrhO8UZMB8GA1UdIwQYMBaAFB24TDDMoTWycjWgisz6+RecxNJK MA0GCSqGSIb3DQEBBQUAA4GBACxJ8tmQqB2lDTsUHO8csl01Zi+fyrFWn21fhHBm v0TabsTJCIHR927QbDVdRVpSHGxf0CT6FcKIqWS3FeXs06cuU5DA0Rb8zFihZQjJ TDQ44lc/tujb+JJiwv1ZgX3XqhpDIBu3GAmXBkfZOgkUu2MYDxWBog2JzDL5V4h4 b3LY -----END CERTIFICATE----- |
PEM 形式の署名済みサーバ証明書を作成
—–BEGIN CERTIFICATE—– から —–END CERTIFICATE—– までを
コピーし PEM 形式のファイルを作成してください。
apache > vi apache.japan.sun.com.signed-server-cert.pem
-----BEGIN CERTIFICATE----- MIIDvzCCAyigAwIBAgIJAM3q2/TI45OTMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTIyNTA2NTg0N1oXDTEwMTIyNTA2NTg0N1owgZsxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFGFwYWNoZS5qYXBhbi5zdW4uY29t MSYwJAYJKoZIhvcNAQkBFhd3ZWJtYXN0ZXJAamFwYW4uc3VuLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMmhdQE7RNguu/+X+sAJltCun5I62PB8 d78rjYIUPhTsJgGraMpqqxrmNwiJKnOD1mF+DDdMnDU45CCoJd9gzXzqF3wdW58L QDrX/C7kr2Ziw/1GpzERaJb0y8N9gb03uFPvzGh4UZ2iSPWATtZJO4sN24GOWP0s v0eQh21A5t2MY8K9YtSqcEqwkexh1LUY6rYrR4NocvcB1q2qRIU0ivadmSVXAjIC Ao0smLyZy6zOpbMnRspM7q9BFI+cYvwGIMOIU/GyOm58dUuP2oOKNNQpQG2theXI bvghjHzsPAC2B+GXeEgEgoAZKCgSBJyx9k84RHRBmKvmX43ChKaoTo0CAwEAAaOB jzCBjDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0E HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFB4fwpX2 KSxTVCcyZv9ZYPrhO8UZMB8GA1UdIwQYMBaAFB24TDDMoTWycjWgisz6+RecxNJK MA0GCSqGSIb3DQEBBQUAA4GBACxJ8tmQqB2lDTsUHO8csl01Zi+fyrFWn21fhHBm v0TabsTJCIHR927QbDVdRVpSHGxf0CT6FcKIqWS3FeXs06cuU5DA0Rb8zFihZQjJ TDQ44lc/tujb+JJiwv1ZgX3XqhpDIBu3GAmXBkfZOgkUu2MYDxWBog2JzDL5V4h4 b3LY -----END CERTIFICATE----- |
Apache の SSL の設定
Apache の SSL 設定ファイル(httpd-ssl.conf)を編集し
署名済みサーバ証明書(PEM形式)と秘密鍵ファイルを指定してください。
apache > vi /usr/local/apache2.2.14/conf/extra/httpd-ssl.conf
下記の行をそれぞれ編集 SSLCertificateKeyFile “/usr/local/apache2.2.14/conf/ssl.key/apache.japan.sun.com.key” |
GlassFish ロードバランサプラグインの設定
必要なソフトウェアに記載した URL から入手したロードバランサ
プラグインを GlassFish のドメイン管理サーバとApache にそれぞれ
コピーしてください。
ファイルをコピー後、それぞれアーカイブを展開してください。
dashost > mkdir /tmp/AS_LB dashost > cp /aslb-9.1.1-b13.jar /tmp/AS_LB/ dashost > cd /tmp/AS_LB/ dashost > jar xvf aslb-9.1.1-b13.jar SUNWaslb.zip が抽出されました. SUNWaspx.zip が抽出されました. BinariesLicense が展開されました. dashost > ls dashost > mkdir /sun/glassfish-v2.1.1/lib/plugin ロードバランサの設定ファイルをテンプレートディレクトリにコピー dashost > 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 |
Apache 上で LB プラグインを展開し,設定ファイルやモジュールを
Apache の関連ディレクトリにコピーしてください。
apache > mkdir /tmp/AS_LB apache > cp /aslb-9.1.1-b13.jar /tmp/AS_LB/ apache > cd /tmp/AS_LB/ apache > jar xvf aslb-9.1.1-b13.jar SUNWaslb.zip が抽出されました. apache > ls apache > unzip SUNWaslb.zip
apache > cp /tmp/AS_LB/lib/plugin/lib/install/templates/loadbalancer.xml.example |
Apache 設定ディレクトリのオーナ変更
Apache の設定ディレクトリ (conf) に起動ユーザ(daemon)がアクセス
できるようにオーナを変更してください。
apache > chown -R daemon /usr/local/apache2.2.14/conf/ |
Apache の再起動
上記で Aapche 側の設定は完了です。Apache を起動してみましょう。
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 apache.japan.sun.com:443 (RSA) OK: Pass Phrase Dialog successful. |
※ 起動時パスワード入力を求めない方法もありますが、その設定方法は
別途 openssl コマンドを調べて設定してください。)
認証局(CA) 証明書を GlassFish へインポート
Apache 側ではプライベートの認証局(CA)によって署名された
サーバ証明書を正しく設定しましたが、
Apache 側で設定したサーバ証明書が信頼できる証明書か
GlassFish 側ではわからないため、信頼できる証明書であることを
証明する認証局(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@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@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@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----- |
上記のファイルの—–BEGIN CERTIFICATE—–から
—–END CERTIFICATE—– までをコピーして保存してください。
コピーをドメイン管理サーバ(DAS)へ転送してください。
dashost > 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) の証明書を cacerts.jks と keystore.jks へインポート
PEM 形式の認証局の署名書を GlassFish のサーバ証明書データベース(cacerts.jks)と
鍵データベース(keystore.jks)へインポートしてください。
dashost > cd domains/clusterDomain/config/ dashost > keytool -import -trustcacerts -v -keystore cacerts.jks -alias PrivateCACert -file /tmp/cacert.pem キーストアのパスワードを入力してください: [changeit] 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@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 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] この証明書を信頼しますか? [no]: yes 証明書がキーストアに追加されました。 [cacerts.jks を格納中] dashost > keytool -import -trustcacerts -v -keystore keystore.jks 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@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 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] この証明書を信頼しますか? [no]: yes 証明書がキーストアに追加されました。 [keystore.jks を格納中] dashost > |
認証局(CA) 証明書のインポート後の確認
正しく認証局(CA)の証明書がインポートできているかを確認するため、
keytool を使って確認してください。
dashost > keytool -list -v -alias PrivateCACert -keystore cacerts.jks キーストアのパスワードを入力してください: 別名: PrivateCACert 作成日: 2009/12/25 エントリのタイプ: trustedCertEntry 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@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 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] dashost > keytool -list -v -alias PrivateCACert 別名: PrivateCACert 作成日: 2009/12/25 エントリのタイプ: trustedCertEntry 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@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 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] |
上記で Apache 上でのロードバランサ設定は完了です。
次に GlassFish 上で Apache との連携用の設定を行います。
GlassFish v3 の OSGi 対応について
今日は、GlassFish v3 の OSGi 対応について説明します。
セミナー等で登壇する際、GlassFish v2.x と GlassFish v3 は GUI の
管理コンソールや CLI の管理ツールの使用方法はよくにていますが、
内部実装はまったく別物ですと説明しています。
今回、GlassFish v3 で内部実装がどのように変わったかについて説明します。
GlassFish v3 はシステムの柔軟性を高めるためまた実行時のパフォーマンスを
向上させるためにモジュールシステムを採用しました。
GlassFish v2 までは各機能を全て一つにまとめて提供していたため、
EJB が必要のないユーザも、EJB コンテナを含んだ形でインストール/起動を
しなければなりませんでした。また、ユーザが独自に管理ツールを拡張したり
アプリケーションサーバを拡張したりすることは困難でした。
しかし、GlassFish v3 からはモジュールシステムを導入したため、EJB が
必要のないユーザは EJB を起動しないだけでなく、インストールをしないといった
選択肢も選べるようになりました。また必要に応じて独自の管理機能を
実装できるようになったため、アプリケーションサーバの運用がより柔軟に
行えるようになります。
これにより、本番環境でアプリケーションサーバを運用する際、各システムで
必要な機能だけを利用可能にし、メモリ等のリソースの消費量を減らすことができ、
結果としてパフォーマンスを向上させることができるようになります。
モジュールシステムの導入にあたって、GlassFish v3 は OSGi アライアンスの
標準準拠した Apache Felix を利用しています。全ての GlassFish v3 の機能は
Apache Felix のサービスバンドルとして実装されていますので、GlassFish v3
の管理ツールが提供している管理機能以外に、Apache Felix のインタフェースを
通じて、サービスの停止、起動などもできます。
(デフォルトの OSGi ランタイムとして Apache Felix を使用していますが、
他の OSGi ランタイム上で GlassFish を動作させることもできます。
(例:KnopflerFish など)
ここでは、かんたんに OSGi バンドルを生成する方法と
GlassFish v3 への追加方法について示します。
1. OSGi バンドルを作成します。
% vi MyBundle.java
import org.osgi.framework.*; public class MyBundle implements BundleActivator { // Start the bundle public void start(BundleContext context) { System.out.println(“Started the OSGi Bundle”); } // Stop the bundle public void stop(BundleContext context) { System.out.println(“Stopped the OSGi Bundle”); } } |
2. マニフェストファイルの作成
% vi MyBundle.mf
Manifest-Version: 1.0 Bundle-Name: MyBundle Bundle-Activator: MyBundle Bundle-SymbolicName: MyBundle Bundle-Version: 1.0.0 Import-Package: org.osgi.framework |
3. GlassFish v3 のインストールディレクトリより felix.jar が存在することを確認してください。
(コンパイル時にクラスパスを設定します)
% ls /Applications/GlassFish/glassfishv3-webprofile/glassfish/osgi/felix/bin/ felix.jar |
4. ソースコードのコンパイル
上記の felix.jar をクラスパスに追加してコンパイルしてください。
% javac -classpath /Applications/GlassFish/glassfishv3-webprofile/glassfish/osgi/felix/bin/felix.jar MyBundle.java |
5. jar アーカイブの生成
% jar cfm MyBundle.jar ./MyBundle.mf ./MyBundle.class |
6. OSGi バンドルのインストール
OSGi バンドルは glassfish/modules ディレクトリにコピーします。
% cp MyBundle.jar /Applications/GlassFish/glassfishv3-webprofile/glassfish/modules/ |
7. GlassFish v3 の起動
% asadmin start-domain domain1
DAS の起動を待機しています ………………………………….. 起動したドメイン: domain1 ドメインの場所: /Applications/GlassFish/glassfishv3-webprofile/glassfish/domains/domain1 ログファイル: /Applications/GlassFish/glassfishv3-webprofile/glassfish/domains/domain1/logs/server.log ドメインの管理ポート: 4848 コマンド start-domain は正常に実行されました。 |
8. Apache Felix コンソールへアクセス
6666番ポートへアクセスするとデフォルトで Apache Felix の
コンソールが利用できるようになっています。
% telnet localhost 6666 Trying ::1… Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’. Felix Remote Shell Console: |
9. GlassFish v3 のログの確認
独自に作成したバンドルが標準出力に吐き出すログの内容を確認してみましょう。
バンドルの起動、停止を行う度に独自に作成したバンドルからログが出力されている
ことを確認できます。
$ tail -f /Applications/GlassFish/glassfishv3-webprofile/glassfish/domains/domain1/logs/server.log
[#|2009-12-22T14:50:34.366+0900|INFO|glassfishv3.0|javax.enterprise.system.std.com.sun. |
このように、OSGi のモジュールシステムを導入した GlassFish v3 は管理機能の拡張もできリソース管理も柔軟にできる新しいアーキテクチャになっています。GlassFish v2.x からアーキテクチャは大きく変わりますが、その利点は数多くあります。OSGi 対応した GlassFish v3 をぜひ試してみてください。
備考:
OSGi バンドルは asadmin コマンドで type=osgi を指定してデプロイすることもできます。
% asadmin deploy –type osgi ./MyBundle.jar
Application deployed successfully with name MyBundle. Felix Remote Shell Console: |
SIP コンテナの設定項目一覧
SailFin (Sun GlassFish Communications Server) の設定項目について調べ、
この情報は SailFin をご利用の方には有用な情報になるかと思い、本ブログでも
公開します。
下記は、SailFin の中で特に SIP コンテナに関連した設定項目の一覧になります。
もちろん、下記の設定項目以外に GlassFish で提供される設定項目も設定変更が
可能ですが、ここでは特に SIP コンテナ、SIP リスナーに関する項目だけを抜粋しています。
また、下記の設定項目は GUI の管理コンソールからも設定変更ができますので
必要に応じて、GUI 管理コンソールをご使用ください。
パラメータ名 | 意味 | デフォルト値 |
server.log-service.module-log-levels.property.sip | 各サーバーモジュールのログレベルを指定 します。 FINEST: 最大の詳細度 FINER: 中間の詳細度 FINE: 最小の詳細度 CONFIG: サーバー設定に関連するメッセージ INFO: サーバー設定、またはエラーを除くサーバーの状態に関連するメッセージ WARNING: 例外を含む警告 SEVERE: 正常なプログラム実行の妨げになるイベント |
INFO |
server.monitoring-service.module-monitoring-levels.property.sip-service | SIP サービスの監視を有効 「LOW」または「HIGH」を選択します |
OFF |
server.sip-container.external-address | コールバッククライアントがレスポンスを 返信する際に使用する外部からアクセス可能な アドレスを指定します。 |
N/A |
server.sip-container.external-sip-port | コールバッククライアントがレスポンスを 返信する際に使用する外部からアクセス可能な SIP用のポート番号を指定します。 |
5060 |
server.sip-container.external-sips-port | コールバッククライアントがレスポンスを 返信する際に使用する外部からアクセス可能な SIPS用のポート番号を指定します。 |
5061 |
server.sip-container.session-config.session-manager.manager-properties.max-sessions | 最大セッション数 | N/A |
server.sip-container.session-config.session-manager.manager-properties.reap-interval-in-seconds | 取得間隔 アクティブでないセッションデータが削除 されるまでの秒数 |
N/A |
server.sip-container.session-config.session-manager.manager-properties.session-file-name | セッションファイル名: セッションデータを含むファイル。 |
N/A |
server.sip-container.session-config.session-manager.manager-properties.session-id-generator-classname | セッション ID ジェネレータクラス名: セッション ID を生成するためのカスタムクラス |
N/A |
server.sip-container.session-config.session-manager.store-properties.directory = | セッション情報をファイルに保存する際 ファイルの保存先のディレクトリを指定 (テスト環境においてのみ利用可能、 テスト時セッション情報の内容を確認する ために利用) |
N/A |
server.sip-container.session-config.session-manager.store-properties.reap-interval-in-seconds | 取得間隔: アクティブでないセッションデータが削除 されるまでの秒数 |
N/A |
server.sip-container.session-config.session-properties.timeout-in-seconds | セッションタイムアウトの時間(秒) | N/A |
server.sip-service.property.accesslog | アクセスログの保存先 | ${com.sun.aas.instanceRoot} /logs/sipaccess |
server.sip-service.access-log.format | SIPサービスのアクセスログのフォーマット を指定 SIP ヘッダーの client.name、auth-user-name、 datetime、request、status、response.length、 max.forwards、from、cseq、contact、to、 content.type、via、call.id を指定可能 |
%client.name% %auth-user-name% %datetime% %request% %status% %response.length% |
server.sip-service.access-log.rotation-enabled | アクセスログのローテーションを有効 | TRUE |
server.sip-service.access-log.rotation-interval-in-minutes | ローテーション間隔を指定 | 15 |
server.sip-service.access-log.rotation-policy | ローテーションのポリシーを指定 デフォルトの time 以外選択肢は無い |
time |
server.sip-service.access-log.rotation-suffix | ローテーションサフィックス: ローテーション後にアクセスログファイル名に 追加されるファイル名のサフィックス |
yyyy-MM-dd |
server.sip-service.connection-pool.max-pending-count | 最大保留カウント: LISTENソケットの保留の最大数 |
4096 |
server.sip-service.connection-pool.queue-size-in-bytes | キューサイズ: 接続キューのバイト単位のサイズ. -1 は、プロパティーが無効 |
-1 |
server.sip-service.connection-pool.receive-buffer-size-in-bytes | 受信バッファーサイズ: ソケットが使用する受信バッファのサイズ. -1 は、プロパティーが無効 |
-1 |
server.sip-service.connection-pool.send-buffer-size-in-bytes | 送信バッファーサイズ: ソケットが使用する送信バッファのサイズ |
8192 |
server.sip-service.keep-alive.max-connections | 最大接続数: キープアライブモードにある接続の最大数 |
256 |
server.sip-service.keep-alive.thread-count | スレッド数: システム内のキープアライブスレッドの数 |
1 |
server.sip-service.keep-alive.timeout-in-seconds | タイムアウト: 接続がアイドルと見なされ、キープアライブ 状態で維持される最大時間。 -1 はタイムアウトが無効 |
-1 |
server.sip-service.request-processing.header-buffer-length-in-bytes | SIP ヘッダーのバッファー長: リクエスト処理スレッドがリクエストデータ の読み込みに使用するヘッダーバッファのサイズ |
8192 |
server.sip-service.request-processing.initial-thread-count | 初期スレッド数: SIP サービス開始時のリクエスト処理スレッド の数 |
10 |
server.sip-service.request-processing.request-timeout-in-seconds | リクエストタイムアウト: SIPリクエストがタイムアウトされるまでの秒数 |
30 |
server.sip-service.request-processing.thread-count | リクエストスレッド数: リクエスト処理スレッドの最大数 |
10 |
server.sip-service.request-processing.thread-increment | スレッドの増分: リクエスト数が初期スレッド数に達した時点で 追加されるスレッド数 |
1 |
server.sip-service.sip-listener.sip-listener-*.address | ネットワークアドレス: ドットで区切られたペアまたは IPv6 形式で 指定可能。 複数のIPアドレスでリクエスト受け付けたい場合、 0.0.0.0、any (または ANY)、または INADDR_ANY (すべて IP アドレス)を指定 |
0.0.0.0 |
server.sip-service.sip-listener.sip-listener-*.enabled | SIP リスナーの有効/無効を設定 | TRUE |
server.sip-service.sip-listener.sip-listener-*.external-sip-address | 外部向け SIPアドレス: この値を指定した場合は、SIP コンテナの設定 よりも優先されます |
N/A |
server.sip-service.sip-listener.sip-listener-*.external-sip-port | 外部向け SIPポート番号: この値を指定した場合は、SIP コンテナの設定 よりも優先されます |
N/A |
server.sip-service.sip-listener.sip-listener-*.id | SIPリスナーの識別名 | sip-listener-1/ Sip-listener-2 |
server.sip-service.sip-listener.sip-listener-*.port | SIPポート番号 | 5060/5061 |
server.sip-service.sip-listener.sip-listener-*.ssl.cert-nickname | SIPS用のサーバ証明書のニックネームを設定 | s1as |
server.sip-service.sip-listener.sip-listener-*.ssl.client-auth-enabled | SIPS用クライアント認証の有効/無効設定 | FALSE |
server.sip-service.sip-listener.sip-listener-*.ssl.ssl2-ciphers | SIPS用 SSLv2の暗号化方式の指定 | N/A |
server.sip-service.sip-listener.sip-listener-*.ssl.ssl2-enabled | SIPS用 SSLv2の有効/無効設定 | FALSE |
server.sip-service.sip-listener.sip-listener-*.ssl.ssl3-enabled | SIPS用 SSLv3の有効/無効設定 | FALSE |
server.sip-service.sip-listener.sip-listener-*.ssl.ssl3-tls-ciphers | SIPS用 SSLv3/TLSの暗号化方式の指定 | N/A |
server.sip-service.sip-listener.sip-listener-*.ssl.tls-enabled | SIPS用 TLSの有効/無効設定 | TRUE |
server.sip-service.sip-listener.sip-listener-*.ssl.tls-rollback-enabled | SIPS用のTLSロールバックの有効/無効設定 | TRUE |
server.sip-service.sip-listener.sip-listener-*.transport | SIPリスナーの転送プロトコル | TCP/UDP or tls |
server.sip-service.sip-listener.sip-listener-*.type | SIPリスナーの種類 タイプにはデフォルト、外部、または内部を 指定できます。内部リスナーは、clb により プロキシの目的でのみ使用されます。 外部リスナーは、clb ではなく UA によってのみ 使用されます。デフォルトのタイプは両方利用 可能です。 |
default |
server.sip-service.sip-protocol.default-tcp-transport | デフォルトトランスポート: contact および record-route ヘッダーの URI で “transport=tcp” の挿入を有効/無効にします。 |
FALSE |
server.sip-service.sip-protocol.error-response-enabled | エラー応答: 不正な要求に対するエラー応答の送信を有効/ 無効にします。 |
FALSE |
server.sip-service.sip-protocol.sip-link.connection-alive-timeout-in-seconds | 接続生存状態のタイムアウト: 接続を終了するまでに、SIP リンクがアクティブ でない状態を許可される最大時間。 デフォルトは 120 秒。 |
120 |
server.sip-service.sip-protocol.sip-link.max-queue-length | キューの最大長: 1 つのリンク上で書き込みを待機できる、 同時書き込み要求、または接続要求の最大数、 またはその両方の最大数。 デフォルトの要求数は 50 |
50 |
server.sip-service.sip-protocol.sip-link.write-timeout-in-millis | 書き込みタイムアウト: SIP リンクの 1 回の書き込み操作の最大時間 範囲は 1 から 50 ミリ秒 デフォルトは 10 ミリ秒 |
10 |
server.sip-service.sip-protocol.sip-link.write-timeout-retries | 書き込みタイムアウトの再試行回数: SIP リンクの単一の書き込み操作を再試行する 最大回数。範囲は 1 から 25 デフォルトは 25 です。 |
25 |
server.sip-service.sip-protocol.sip-timers.t1-in-millis | SIP タイマー タイマー T1: T1 は、クライアントとサーバーの トランザクション間の推定往復時間 デフォルト値は 500 ミリ秒 |
500 |
server.sip-service.sip-protocol.sip-timers.t2-in-millis | タイマー T2: 非 INVITE 要求と INVITE 応答の最大の再送信 間隔 デフォルト値は 4000 ミリ秒 |
4000 |
server.sip-service.sip-protocol.sip-timers.t4-in-millis | タイマー T4: メッセージがネットワークに存続する最大時間 デフォルト値は 5000 ミリ秒 |
5000 |
server.overload-protection-service.enabled | 過負荷保護サービス機能の有効/無効設定 | FALSE |
server.overload-protection-service.cpu-overload-protection | CPU 過負荷保護の有効/無効設定 | FALSE |
server.overload-protection-service.cpu-http-threshold | HTTP リクエストに対するアクセス拒否を行う CPU の閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
70 |
server.overload-protection-service.cpu-ir-threshold | SIP 初期リクエストに対するアクセス拒否を行う CPU の閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
70 |
server.overload-protection-service.cpu-sr-threshold | SIP 初期リクエスト以降のリクエストに対する アクセス拒否を行うCPU の閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
90 |
server.overload-protection-service.cpu-mm-threshold | HTTP/SIP の両リクエストに対するアクセス 拒否を行うCPU の閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
99 |
server.overload-protection-service.cpu-overload-activation-algorithm | CPU 過負荷によるアクセス拒否 有効化アルゴリズムの選択: CPU の過負荷保護を有効にするかどうかを 決定するアルゴリズムを指定します。 CONSECUTIVE もしくは MEDIAN を指定 |
MEDIAN |
server.overload-protection-service.cpu-overload-deactivation-algorithm | CPU 過負荷によるアクセス拒否 無効化アルゴリズムの選択: CPU の過負荷保護を無効にするかどうかを 決定するアルゴリズムを指定します。 CONSECUTIVE もしくは MEDIAN を指定 |
CONSECUTIVE |
server.overload-protection-service.mm-threshold-http-wait-time | CPU 過負荷時 スレッドプールに戻されるまでにスレッドが 保持される期間を設定。 デフォルト2秒 |
2 |
server.overload-protection-service.number-of-samples | CPU 過負荷の計測において 過負荷と判断されるまでに必要なサンプルの数を 設定 設定可能な最小サンプリングレートは 2 |
5 |
server.overload-protection-service.retry-after-interval | CPU 過負荷を計測する間隔 503 エラーレスポンスの retry-after ヘッダに ここで設定した値が書き加えられる |
10 |
server.overload-protection-service.sample-rate | CPU 過負荷の計測における計測間隔を設定 正の値を指定可能 |
2 |
server.overload-protection-service.memory-overload-protection | メモリ過負荷保護の有効/無効設定 | FALSE |
server.overload-protection-service.mem-http-threshold | HTTP リクエストに対するアクセス拒否を行う メモリの閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
85 |
server.overload-protection-service.mem-ir-threshold | SIP 初期リクエストに対するアクセス拒否を行う メモリの閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
85 |
server.overload-protection-service.mem-sr-threshold | SIP 初期リクエスト以降のリクエストに対する アクセス拒否を行うメモリの閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
85 |
server.overload-protection-service.mem-mm-threshold | HTTP/SIP の両リクエストに対するアクセス 拒否を行うメモリの閾値を設定 (0% から 100%) 閾値を超えるとHTTP 503 エラーを返す |
99 |
server.overload-protection-service.mem-overload-activation-algorithm | メモリ過負荷によるアクセス拒否 有効化アルゴリズムの選択: メモリの過負荷保護を有効にするかどうかを 決定するアルゴリズムを指定します。 CONSECUTIVE もしくは MEDIAN を指定 |
MEDIAN |
server.overload-protection-service.mem-overload-deactivation-algorithm | メモリ過負荷によるアクセス拒否 無効化アルゴリズムの選択: メモリの過負荷保護を無効にするかどうかを 決定するアルゴリズムを指定します。 CONSECUTIVE もしくは MEDIAN を指定 |
CONSECUTIVE |
SDC 連載記事のアーカイブ
以前、GlassFish に関する連載記事を弊社 SDC(sdc.sun.co.jp)のサイトで
行っていましたが、SDC のサイトが何らかの障害?閉鎖?で
アクセスできなくなっておりました。
以前、連載記事のバックアップをしていましたので、
こちらから連載記事をまとめてダウンロードできるようにいたしました。
(若干体裁はずれていますが、内容や画像はそのまま確認できるかと思います。)
jar 版と、tgz 版それぞれ用意いたしましたので、ご希望に応じて
入手してください。
jar アーカイブ版
tgz アーカイブ版
上記ファイルに含まれる連載のコンテンツは下記の通りです。
第1回:導入編
第2回:アプリケーションサーバの管理の基本
第2回:アプリケーションサーバの管理の基本 アップデート情報
第3回:クラスタと負荷分散 (1)
第4回:クラスタと負荷分散 (2)
第5回:インメモリリプリケーションによる高可用性の実現方法
訂正:確認した所すべてのコンテンツは下記に移されておりました。 移動先へのリンク |

(伊豆下田)

(箱根の夕暮れ)
GlassFish v3 インストールビデオ
早速、GlassFish v3 をダウンロードしてインストールしてみました。
MacBook で GlassFish v3 の WebProfile をインストールし日本語
環境にするまでの手順をビデオに撮りましたので、ぜひ参考にしてください。
GlassFish v2 の頃に比べオープンインストーラを使うように
なったので、インストールがとても簡単になっています。
また、GlassFish v3 からは Java SE 6 以上が必須となりますので、
Java SE 6 をお持ちでない方は事前にインストールしてください。
(※ Java SE 5 はノンサポートです。)
Java SE 6 をインストール後、JAVA_HOME の環境変数を設定して
GlassFish v3 のインストールを開始してください。
ビデオはこちらからも確認できます。
このビデオは、全く編集をしていません。(計:8分27秒)
途中 Update Tool の初期化やローカライズパッケージのダウンロードなどで
若干時間が掛かっていますが、これらの処理は恐らくどの環境でも同じかと思います。
待ち時間を除くと手作業は5分も掛かっていなくてとても簡単です。
インストールから、日本語環境の構築までが 8 分でできますので、
時間に余裕がある時にぜひインストールしてみてください。
GlassFish v3 FCS 版が入手可能
つい先ほど(12/10 23時頃)から、GlassFish v3 の FCS 版がダウンロード
できるようになりました。
入手はこちらから
Mac版では、フルバージョンが 70MB、Web Profile 版が 50MB でした。
是非、この新鮮な GlassFish をご賞味あれ!!
Java EE 6 / GlassFish v3 の仮想カンファレンス開催
Java EE 6 / GlassFish v3 に関連した仮想カンファレンス開催が
2009年12月15日 (日本時間:12/16 夜中 AM1:00 から)されます。
各セッションは30分〜1時間で開催される予定です。
日本の方は、真夜中から明け方までになるのでその時間帯で、
見ることはできないと思うのですが、今海外のエンジニアに
録画して後から見れるようにして欲しいと要望をだしていますので、
もし、録画されたらそちらを見てみてください。
詳細はコチラ
● Java EE: The Foundation for Your Business (Keynote)
● Java EE 6: An Overview (Keynote)
● GlassFish v3 – Java EE 6 Reference Implementation & Beyond (Keynote)
● Enterprise Java Beans (EJB) 3.1 Features
● Jersey, JAX-RS and REST with GlassFish v3
● Servlet 3.0
● Java Persistence API (JPA) 2.0
● Java Server Faces (JSF) 2.0
● Web Services in GlassFish
● Context Dependency and Injection (JSR 299)
● OSGi in GlassFish v3
● Dynamic Languages with GlassFish v3
● Tools for GlassFish v3: NetBeans and Eclipse
● Grizzly: NIO & Web Framework. Comet using GlassFish
● Monitoring, Management in GlassFish v3
日本時間では明日には、GlassFish の FCS(First Customer Shipment) 版がいよいよリリースされます。
また、GA(General Availability) 版はクリスマス前にはリリースされるかと思います。
年末まで各種イベントが目白押しですが、Sun の GlassFish ブロガー達が数多くの情報を
発信します。
是非、下記のタグもご参照ください。
http://blogs.sun.com/main/tags/glassfish
今日の日本経済新聞 朝刊を見ました?
今日の日本経済新聞 朝刊を見た方いらっしゃいます?
日本 Oracle から Sun の既存のお客様に対して力強い
下記のメッセージ広告を頂きました。
GlassFish も今後も投資すると別資料で報告していますので、
安心してご使用ください。