Posts filed under ‘Application Server/GlassFish’
GlassFish ドメイン管理(作成、削除、起動、停止)
ドメインの作成
ドメインを作 成するためには create-domain コマンドを 実行して作成します.下記にプロファイルごとのドメイン作成方法を示します.
開発者 用プロファイルを使用したドメインの作成方法
デフォルトで 作成されるドメイン(domain1)以外に開発者用プロファイ ルを利用した新規ドメイン(devDomain)を作成する方法を下記 に示します.
| dashost > asadmin create-domain –profile developer –adminport 14848 –instanceport 10080 –savemasterpassword=true –savelogin=true devDomain Admin のポート 14848 を使用しています。 HTTP Instance のポート 10080 を使用しています。 JMS のデフォルトポート 7676 を使用しています。 IIOP のデフォルトポート 3700 を使用しています。 HTTP_SSL のデフォルトポート 8181 を使用しています。 IIOP_SSL のデフォルトポート 3820 を使用しています。 IIOP_MUTUALAUTH のデフォルトポート 3920 を使用しています。 JMX_ADMIN のデフォルトポート 8686 を使用しています。 コマンド行または環境で の指定どおりにプロファイル developer を使用してドメインを作成しています。 指定されたロケール [ja_JP] のファイルが [/sun/glassfish-v2.1.1/lib/install/templates/locales/ja_JP/index.html] に見つかりませんでした。デフォルト (en_US) の index.html を使用します。 使用するセキュリティーストア: JKS ドメイン devDomain が作成されました。 このドメイン [devDomain] の管理ユーザー名 [devAdmin] に関連するログイン情報が [/export/home/appserv/.asadminpass] に正常に格納されました。 このファイルが保護されたままであることを確認します。このファイルに格納された情報 は、このドメインを管理するために asadmin コマンドによって使用されます dashost > cat .asadminpass # Do not edit this file by hand. Use “asadmin login” command instead. asadmin://devAdmin@localhost:14848 YWRtaW5hZG1pbg== |
クラスタプロファイルを使用したドメインの作成方法
クラスタプロファイルを使用したドメインの作成方法を下記に示します.下記の例では,ベースとなるポート番号(portbase)を指定して実行します.このオプションは 指定したポート番号を基に自動的に各種ポート番号を割り当てドメインを作成します.ポート番号の把握が容易になるため,複数ドメインを構築する場合などに 適しています.
| dashost > asadmin create-domain –user clusterAdmin –profile cluster –portbase 5000 –savemasterpassword=true –savelogin=true clusterDomain (省略) ドメイン clusterDomain が作成されました。 |
上記はいずれも —savemasterpassword,–savelogin を有効にして設定を行いました.これらのオプションを指定してドメインを作成すると, 管理者のパスワード,管理者のパスワードがローカルファイルシステム(.asadminpass/master-password)に保存され,次回コマン ド実行時に管理者パスワードの入力を省略できます。一方 –savemasterpassword,–savelogin を指定せずに作成したドメインは asadmin コマンドの実行時に毎回管理者パスワードを問い合わせされます.
不正使用を防ぎたい場合は,毎回パスワードの入力を求めるように–savemasterpassword,–saveloginの 設定を無効にし,環境変数も設定しないようにしてください.
ドメインの一覧表示
作成されているドメインの一覧を表示するためにはlist-domainsコ マンドを実行します.コマンドを実行すると一覧表示以外にドメインの稼働状態も確認できます.
| dashost > asadmin list-domains devDomain 実行していません clusterDomain 実行しています コマンド list-domains は正常に実行されました。 |
ドメインとドメイン管理サーバインスタンスの起動
ドメイン管理サーバを起動するためには,start-domainコマンドを実行します.
| 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 ]。 ドメインはアプリケーションサーバークラスタおよびその他のスタンドアロンインスタン スをサポートします。 |
ドメインとドメイン管理サーバインスタンスの停止
ドメイン管理サーバを停止するためには,stop-domainコマンドを実行します.
| dashost > asadmin stop-domain clusterDomain ドメイン clusterDomain が停止しました |
開発者プロファイルを使用して作成したドメインの場合,管理コンソールの左ペインから「アプリケーションサーバ」を選択し右ペインの「一般」タブか ら「インスタンスの停止」ボタンを押すことによってドメイン管理サーバのインスタンスを停止する事ができます.

図 7:開発者プロファイルを利用 したドメイン管理サーバの停止方法
クラスタプロファイルを使用して作成したドメインの場合,管理コンソールから左ペインの「スタンドアロンインスタンス」を選択し右ペインの「一般」 タブから「インスタンスの停止」ボタンを押すことによってドメイン管理サーバのインスタンスを停止する事ができます.

図 8:クラスタプロファイルを利 用したドメイン管理サーバの停止方法
クラスタプロファイルへの変更方法
開発者プロファイルで作成したドメインをクラスタプロファイルに変更することができます.クラスタプロファイルへの変更は、asadminコマンドは利用できず,GUIの管理コンソールを使用した場合のみ可能です.
クラスタプロファイルへ変更するためには,管理コンソールの左ペインから「アプリケーションサーバ」を選択し右ペインの「一般」タブから「クラスタ サポートを追加…」ボタンを押すことによってクラスタ 構成を組むことのできるクラスタプロファイルへ変更できます.

図 9:クラスタプロファイルへの 変更方法
ドメインの削除
ドメインを削除する前に,ドメインが管理する全てのノードエージェント,全てのインスタンス,全てのアプリケーションが停止/削除されていることを確認して下さい.ドメイン上の各種リ ソースが残っている場合,削除に失敗します.
ドメインを削除するためには,delete-domainコマンドを実行します.
| dashost > asadmin delete-domain devDomai |
GlassFish ドメインとドメイン管理サーバ
ドメインとは
「ドメイン」とは,アプリケーションサーバの管理を行う上で必要なプロセスや,設定情報等をグループ化した管理用の構成単位です. ドメインは「ドメイン管理サーバ」,「サーバインスタンス」,「ノードエージェント」,「各種リソース(JDBC, JMS, JNDI)」等のさまざまなコンポー ネントや設定情報から構成されています.GlassFishをインストールすると, デフォルトで一つのドメイン(domain1)を生成しますが,必要に応 じて複数のドメインを作成することができます.管理を行うためには,サーバ管理者は,管理者ユーザ名,管理者パスワード,証明書データベースの管理用パス ワードを入力したのち管理を行います.複数のドメインを作成する場合,それぞれのドメインに対して個別に管理者ユーザ名,管理者パスワード,認証用データ ベース管理用パスワードを設定する必要があります.
複数のドメインの作成は,ASP (Application Service Provide) サービスの提供や SaaS(Software as a Service), またクラウドといったサービスにおいて,サービス提供単位,組織単位毎に独立して管理を行いたい場合等に適しています.各ドメイン間を独立して管理でき各 種設定情報はドメイン間では共有されないためこのような環境で安全に利用できます。

図 1:複数ドメインの構成例
| 補足:GlassFish v2.1 では 単一ドメインにおいて,単一のサーバ管理者が必要でしたが,GlassFish v3で は単一ドメインに対して,複数の管理者を設定できるようになります.これにより各管理者に対してあらかじめ権限を設定しておく事で複数の管理者で安心して 管理ができるようになります. |
ドメイン管理サーバ
ドメイン管理サーバは,ドメインを管理するための管理機能アプリケーションを含んだ,Java EE 5仕 様完全準拠のサーバインスタンス(※1)です.このドメイン管理サーバは,GlassFishのインストール時に作成される唯一のサー バインスタンスで,Java EEアプリケーションを配備して 稼働させる事もできるため,デフォルトサーバと呼ぶこともあります.通常開発時はこのデフォルトサーバのインスタンスに対してアプリケーションを配備した り,デバッグ等を行います.また本番環境において,複数のサーバインスタンスでサービスを提供している場合,一度このデフォルトサーバに対してアプリケー ションを配備し,動作確認後問題がない場合に本番環境を有効にするといった運用にも使うことができます(※2).
このドメイン管理サーバは,サーバ管理者の認証を行った後,ドメイン内のすべての管理,たとえばアプリケーションの配備やリソース設定,サーバイン スタンスの起動/停止等といった管理機能を提供します.
また,物理的に異なるハードウェア上のリソースも管理できます.
各ドメインは必ず一つのドメイン管理サーバのインスタンスを持ち,各ドメイン管理サーバには任意のネットワークポート番号を設定します.基本的に(※3)全ての管理操作はドメイン管理サーバが稼働している状態で行 いますので,ドメイン管理サーバが稼働していない状態では各種設定変更を行うことはできません.
※1 サーバインスタンスの詳細は別途紹介します.
※2 配備済みのアプリケーション設定で「ターゲットの管理」から利用可能 対象のインスタンス/クラスタを設定できます.
※3 一部の管理操作(インスタンスの起動,停止等)はドメイン管理サーバ が起動していない状態でも実行できます.

開発者ドメイン
図 2:開発時におけるドメインと ドメイン管理サーバの構成
サーバ管理者がドメインの管理を行うために,GlassFishで はいくつかの管理ツールを容易しています。代表的な管理操作はコマンドラインツール,もしくはWebベー スのGUI管理コンソールを使用して行います. また,サーバ管理者が独自に管理機能を拡張したい場合,AMX (AppServer Management Extensions)(※4)と呼ぶJMX MBeansベー スの管理拡張用APIを提供していますので,AMX APIを実装した独自管理機能を通じて管理すること もできます.
※4 AMX (Appserver Management Extensions)
https://glassfish.dev.java.net/javaee5/amx/
| #asadmin help #asadmin command_name [–help | ?] |
asadminで指定可能なコマンド一覧はhelpコマンドを実行することで確認できます.また、各種 コマンドの引数の詳細は,コマンド入力後 –help を付加して実行する事で確認で きます。

図 3:管理コンソールの表示例
ドメイン管理サーバ導入の利点は,セキュアな環境を構築したい場合に便利です.たとえば,ドメインを管理するための管理サービスとエンドユーザに対 して提供するサービスを独立して運用/管理ができるため,安心して管理を行うこ とができるようになります.

図 4:セキュアなサーバ管理が可 能なドメイン構成例
GlassFish プロファイル
今日は GlassFish 管理の基本概念について紹介します.まず,GlassFishを管理する上で,プロファイルと呼ばれる種類が存在する事を理解してください。また選択するプロファイルに応じて管理できる内容が異なることにも注意してください.GlassFish v2.x で提供される各プロファイルの差異を「表1:各プロファイルで使用できる機能」に記載します.種類としては「開発者プロファイル」,「クラスタプロファイル」,「エンタープライズプロファイル」の3種類が存在しています.この内で「エンタープライズプロファイル」は,オープンソースコミュニティ上のサイトでは提供されず,Sunから提供される製品「Sun GlassFish Enterprise Server v2.1.1 with HADB」を入手した場合のみ利用可能です.この製品以外は,「開発者プロファイル」もしくは「クラスタプロファイル」の何れかを利用する事ができます.たとえばインストール後も必要に応じて,「開発者プロファイル」から「クラスタプロファイル」へアップグレードすることも可能です.
| 製品名/機能差異 | 開発者プロファイル | クラスタプロファイル | エンタープライズプロファイル |
| セキュリティストア | JKS(Java Key Store) 証明書データベース:keystore.jks,cacerts.jks 証明書データベースの管理にkeytoolを使用 |
JKS(Java Key Store) 証明書(鍵)データベース:keystore.jks,cacerts.jks 証明書データベースの管理にkeytoolを使用 |
NSS
(Network Security Services) |
| 高速起動 | 可能 | 不可 | 不可 |
| クラスタ化 | 不可 | 可能 | 可能 |
| セキュリティマネージャ | 無効 | 有効 | 有効 |
| セッションレプリケーション | 不可 | インメモリレプリケーション | HADB |
| 負荷分散 | 不可 | 可能 | 可能 |
| ノードエージェント | 不可 | 可能 | 可能 |
| オープンソース 版の入手先 | https://glassfish.dev.java.net/
GlassFish v2.1.1 設定時setup.xmlを使用 |
https://glassfish.dev.java.net/
GlassFish v2.1.1 設定時setup-cluster.xmlを使用 |
入手不可(商用版のみ) |
| 製品版の入手先 | http://www.sun.com/appserver
Sun GlassFish Enterprise Server v2.1.1 |
http://www.sun.com/appserver
Sun GlassFish Enterprise Server v2.1.1 |
http://www.sun.com/appserver
Sun GlassFish Enterprise Server v2.1.1 with HADB |
表 1:各プロファイルで使用できる機能
システムを構築する環境で,どのプロファイルを選択すればよいかは下記の基準に従って選択して下さい.
- 開発者プロファイル:このプロファイルは開発環境に適しています.再起動等が頻繁に発生する開発環境においては高速起動が有効になっていますので統合開発環境との連携に有効です.
- クラスタプロファイル:このプロフィルは複数台のハードウェアでサービスを提供する,クラスタ環境の構築時に有効です.セッション高可用性の実現にはインメモリレプリケーションを使用するため,HADBの利用に比べパフォーマンスがよく,かんたんにクラスタ環境の構築,高可用性環境を構築できます.
- エンタープライズプロファイル:ミッションクリティカルな環境においては,HADBは最適です.HADBは99.999%の高可用性を実現するために専用のデータベース内にセッション情報を格納します.HADB内で冗長構成が取られているため,インメモリレプリケーションの構成に比べより安心して利用することができます.
GlassFish v3.x に関する補足:
GlassFIsh v3 からは上記のプロファイルの概念が若干変わってきます.GlassFish v3 では Java EE 6 で提供される Web Profile と Enterprise Platform 版のいずれかを入手することができます.GlassFish v2.1 でいう所のクラスタ機能は GlassFish v3.x の最初のリリースである GlassFish v3.0 では提供されず、GlassFish v3.1 以降で利用可能になる予定です.Web Profile, Enterprise Platform で提供される機能一覧を下記に示します.
| Java EE Standard | Java Specification Request (JSR) | Sun GlassFish Enterprise Server v3 Full Platform Profile | Sun GlassFish Enterprise Server v3 Web Profile |
|---|---|---|---|
| Java Platform, Enterprise Edition 6 | JSR 316 | 可能 | 可能 |
| Java Servlet Technology 3.0 | JSR 315 | 可能 | 可能 |
| JavaServer Pages 2.2 | JSR 245 | 可能 | 可能 |
| Expression Language 2.2 | JSR 245 | 可能 | 可能 |
| Debugging Support for Other Languages 1.0 | JSR 45 | 可能 | 可能 |
| Standard Tag Library for JavaServer Pages 1.2 | JSR 52 | 可能 | 可能 |
| JavaServer Faces 2.0 | JSR 314 | 可能 | 可能 |
| Common Annotations for the Java Platform 1.1 | JSR 250 | 可能 | 可能 |
| Java Transaction API 1.1 | JSR 907 | 可能 | 可能 |
| Java Persistence API 2.0 | JSR 317 | 可能 | 可能 |
| Enterprise JavaBeans 3.1 Lite | JSR 318 | 可能 | 可能 |
| Managed Beans 1.0 | JSR 316 | 可能 | 可能 |
| Interceptors 1.1 | JSR 318 | 可能 | 可能 |
| Dependency Injection for Java 1.0 | JSR 330 | 可能 | 可能 |
| Enterprise JavaBeans 3.1 Full API | JSR 318 | 可能 | 可能 |
| Contexts and Dependency Injection for Java EE 1.0 | JSR 299 | 可能 | 可能 |
| Java API for RESTful Web Service (JAX-RS) 1.1 | JSR 311 | 可能 | 可能 |
| Bean Validation 1.0 | JSR 303 | 可能 | 可能 |
| Java EE Connector Architecture 1.6 | JSR 322 | 可能 | 不可 |
| Java API for XML-Based Web Services (JAX-WS) 2.2 | JSR 224 | 可能 | 不可 |
| Java Architecture for XML Binding (JAXB) 2.2 | JSR 222 | 可能 | 不可 |
| Implementing Enterprise Web Services 1.3 | JSR 109 | 可能 | 不可 |
| Web Services Metadata for the Java Platform 2.1 | JSR 181 | 可能 | 不可 |
| Java Message Service API 1.1 | JSR 914 | 可能 | 不可 |
| JavaMail 1.4 | JSR 919 | 可能 | 不可 |
| Java Authorization Contract for Containers 1.4 | JSR 115 | 可能 | 不可 |
| Java Authentication Service Provider Interface for Containers 1.1 | JSR 196 | 可能 | 不可 |
| Java EE Application Deployment 1.2 | JSR 88 | 可能 | 不可 |
| J2EE Management 1.1 | JSR 77 | 可能 | 不可 |
| Java API for XML-Based Remote Procedure Calls (JAX-RPC) 1.1 | JSR 101 | 可能 | 不可 |
| Java API for XML-Based Registries (JAXR) 1.0 | JSR 93 | 可能 | 不可 |
GlassFish ドメイン管理の基本
さて、ブログサイトを移動して初エントリですが、実は昨年
GlassFish に関する本を出版するかもしれないということで、
出版用に書きためた物があります。それを、そのまま削除するのも
もったいないので、こちらに数回に分けて投稿する事にしました。
まず、はじめに GlassFish のドメイン管理を行う前に事前に準備します。
-
ホスト名とインストール場所について
-
アプリケーションサーバ実行ユーザの作成
-
管理操作を容易にする環境変数の設定
-
管理ツールの紹介
-
管理コンソール
GUIの管理コンソールを使用してGlassFishの管理を行うことができます.管理コンソールは洗練されたデザインであるため,初めてGlassFishを扱うサーバ管理者も感覚的に管理操作ができるため非常に便利です.

-
asadminコマンドユーティリティ
asadmin コマンドユーティリティは,GUIベースの管理コンソールが提供する管理機能のほとんどを行うことができる便利なユーティリティコマンドです.このコマンドを把握するとスクリプトを書いて管理の自動化を行ったり,ブラウザを開かずに管理ができるためちょっとした管理にもとても便利です.asadminユーティリティの使用方法は,–helpを付加して確認します.実行すると利用可能なコマンドの一覧を表示します.
dashost > asadmin –help
Administration Commands help(1)
NAME
help – displays the asadmin utility commands
SYNOPSIS
help [command_name]
command_name [–help | -?]さらに利用可能なコマンド一覧からコマンドを選択し,引数に–help をつけて実行して下さい.実行するとコマンドの詳細なマニュアルが表示されます.
dashost > asadmin create-domain –help
Administration Commands create-domain (1)
NAME
create-domain – creates a domain with the given name
SYNOPSIS
create-domain [–user user] [–passwordfile passwordfile]
[(–adminport port_number | –portbase portbase)]
[(–profile developer | cluster | enterprise ] –template domain_template)]
[–domaindir domain_directory/domains]
[–instanceport port_number] [–savemasterpassword=false]
[–domainproperties (name=value)[:name=value]*
]
[–savelogin=false] [–terse=false]
[–echo=false] [–interactive=true]
domain_nameまた,asadminユーティリティのコマンドの中でもget,setコマンドを使用すると現在設定されている内容の参照や更新ができます.下記の例ではアスタリスク(*)を指定し全ての設定情報を参照しています.また特定のプロパティに対してsetコマンドを実行し設定変更を行うことができます.
dashost > asadmin get “*”
dashost > asadmin set server-config.http-service.http-listener.admin-listener.server-name=dashost
server-config.http-service.http-listener.admin-listener.server-name = dashost
dashost > asadmin get server-config.http-service.http-listener.admin-listener.server-name
server-config.http-service.http-listener.admin-listener.server-name = dashost -
以降で紹介するホスト名は下記の通りです.それぞれのホストで実行するコマンドを区別するため,コマンド実行時はコマンドプロンプトを付加します.たとえば dashost > と記載されたコマンドはドメイン管理サーバ上で実行していることを意味します.
| 役割 | ホスト名 | コマンドプロンプト |
| ドメイン管理サーバ | dasohst.japan.sun.com | dashost > |
| ノードエージェント | nodeagent1.japan.sun.com | nodeagent1 > |
| ノードエージェント | nodeagent2.japan.sun.com | nodeagent2 > |
| 認証局(CA)サーバ | ca-admin.sun.com | ca-server > |
ドメイン管理サーバ,ノードエージェントはそれぞれ下記のディレクトリにインストールします.
GlassFish のインストールは root 権限で行い,インストールしたライブラリ等は全て root 権限のままにします.
またドメインの実行や管理などは全て一般ユーザ (appserv) で行います.
| /sun/glassfish-v2.1.1 |
認証局(CA)サーバはOpenSSL/0.9.8kを利用していますが,紙面の都合上認証局サーバの構築方法は省略します.
ドメイン管理サーバと全てのノードエージェント上で実行ユーザとグループを作成します。
| # groupadd -g 300 appserv # useradd -u 300 -g appserv -d /export/home/appserv -s /bin/tcsh -m appserv 64 ブロック |
次に,アプリケーションサーバのデフォルトのドメインディレクトリパスを変更します.この変数を変更すると全てのドメイン管理は指定したディレクトリ配下で行われるようになります.ここで指定したディレクトリは実行ユーザ,実行グループで読み書きができるディレクトリでなければなりません.
| # vi /sun/glassfish-v2.1.1/config/asenv.conf AS_DEF_DOMAINS_PATH=”/export/home/appserv/domains” |
上記で指定したディレクトリがない場合は作成してください.
| dashost >cd /export/home/appserv dashost > mkdir domains dashost > ls -l 合計 2 drwxr-xr-x 2 appserv appserv 512 12 月 2日 20:48 domains |
あらかじめ環境変数に,管理者ユーザ名,パスワードなどを設定しておくことでコマンド入力引数を省略できます.下記の設定をドメイン管理サーバ,ノードエージェントの全てで設定してください.
sh 用環境変数の設定例
| PATH=/sun/glassfish-v2.1.1/bin JAVA_HOME=/usr/jdk/jdk1.6.0_17 AS_HOME=/sun/glassfish-v2.1.1 AS_ADMIN_USER=clusterAdmin AS_ADMIN_PASSWORDFILE=~/.passwordfileAS_ADMIN_HOST=dashost.japan.sun.com AS_ADMIN_PORT=5048 |
csh 用環境変数の設定例
| set path=(/sun/glassfish-v2.1.1/bin $path) setenv JAVA_HOME /usr/jdk/jdk1.6.0_17 setenv AS_HOME /sun/glassfish-v2.1.1 setenv AS_ADMIN_USER clusterAdmin setenv AS_ADMIN_PASSWORDFILE ~/.passwordfile setenv AS_ADMIN_HOST dashost.japan.sun.com setenv AS_ADMIN_PORT 5048 |
AS_ADMIN_PASSWORDFILE で指定するパスワードファイルは任意の場所に置くことができます.パスワードファイルには高い機密性を要する情報が含まれるため,ファイルを隠しファイルにしたり,パーミッションを読み込み可能モードにするなどして管理に十分注意してください.
パスワードファイル中に記載する AS_ADMIN_PASSWORD は管理サーバにログインする際に使用するパスワードを指定します。また AS_ADMIN_MASTERPASSWORD には SSL のサーバ証明書や認証局証明書を扱う,証明書データベースを操作するために必要なパスワードを指定します.GlassFish はドメインを作成時,自動的で設定ディレクトリ配下に自己署名証明書(ニックネーム:s1as)を作成します.証明書データベースを操作する際にこのパスワードが必要になります.
~/.passwordfile の内容
| AS_ADMIN_PASSWORD=adminadmin AS_ADMIN_MASTERPASSWORD=changeit |
マピオンのエンジニアさんとの対談記事

昨年末、マピオンさんと合同セミナーを開催しました。
イベント後、マピオンのエンジニアの方々と対談を行い、
対談内容が下記にて公開されました。
マピオン開発部門×サンJavaスペシャリスト 特別対談
なぜ、GlassFish を採用したのか、実運用を開始してからの
どのような事を感じていらっしゃるか等、実際に本番環境で
利用しているお客様の生の声が記載されています。
GlassFish の導入をご検討中の方、また Tomcat, JBoss 等
他のオープンソースアプリケーションサーバをご利用中の方は
是非、本資料をご覧ください。
【速報】EU が Oracle の Sun 買収を承認
EU が Oracle の Sun 買収を承認をしたようです。
Mergers: Commission clears Oracle’s proposed acquisition of Sun Microsystems
発表後、本当に長かったですね。
これからどんな風に変わっていくのか楽しみです。
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 |
