Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理ガイド

- Previous: 第 11 章 トランザクション
- Next: 第 13 章 ORB (Object Request Broker) の設定

# 第 12 章 HTTP サービスの設定

この章では、Application Server の HTTP サービスコンポーネントの仮想サーバーと HTTP リスナーを設定する方法について説明します。

- 「HTTP サービスについて」

- 「HTTP サービスに関する管理コンソールタスク」

- 「仮想サーバーに関する管理コンソールタスク」

- 「HTTP リスナーに関する管理コンソールタスク」

# HTTP サービスについて

- 「HTTP サービスとは」

- 「仮想サーバー」

- 「HTTP リスナー」

## HTTP サービスとは

HTTP サービスは、Web アプリケーションの配備機能を提供する Application Server のコンポーネントで、配備された Web アプリケーションに HTTP クライアントがアクセスできるようにします。 「Web アプリケーションを配備する」を参照してください。これらの機能は、仮想サーバーと HTTP リスナーという 2 種類の関連オブジェクトによって提供されます。

## 仮想サーバー

仮想サーバーは、複数のインターネットドメイン名を同一の物理サーバーでホスティングするためのオブジェクトで、仮想ホストとも呼ばれます。同一物理サーバーにホスティングされるすべての仮想サーバーは、その物理サーバーの IP (Internet Protocol) アドレスを共有します。仮想サーバーは、サーバーのドメイン名 (`www.aaa.com` など) と、Application Server が稼動するサーバーを関連付けます。

注 –

インターネットドメインと Application Server の管理ドメインを混同しないでください。

たとえば、ある物理サーバーで次のドメインをホスティングすると仮定します。

    www.aaa.com
    www.bbb.com
    www.ccc.com

また、`www.aaa.com`、`www.bbb.com`、`www.ccc.com` には、それぞれに関連付けられた Web モジュール `web1`、`web2`、`web3` があるものとします。

つまり、その物理サーバーでは、次のすべての URL が処理されます。

    http://www.aaa.com:8080/web1
    http://www.bbb.com:8080/web2
    http://www.ccc.com:8080/web3

最初の URL は仮想ホスト `www.aaa.com`、2 番目の URL は仮想ホスト `www.bbb.com`、3 番目の URL は仮想ホスト `www.ccc.com` にそれぞれマッピングされます。

一方、`www.bbb.com` には `web3` が登録されていないため、次の URL は 404 リターンコードのエラーとなります。

    http://www.bbb.com:8080/web3

このマッピングが機能するには、`www.aaa.com`、`www.bbb.com`、`www.ccc.com` のすべてを物理サーバーの IP アドレスとして解決する必要があります。これをネットワークの DNS サーバーに登録しなければなりません。さらに、UNIX システムで、`/etc/nsswitch.conf` ファイルの `hosts` の設定に `files` が含まれる場合は、これらのドメインを `/etc/hosts` ファイルに追加します。

Application Server を起動すると、次の 2 つの仮想サーバーが自動的に起動されます。

- ユーザー定義のすべての Web モジュールをホスティングする仮想サーバー `server`

- すべての管理関連 Web モジュール (具体的には管理コンソール) をホスティングする仮想サーバー `__asadmin`。このサーバーの使用は制限されています。つまり、ユーザーがこの仮想サーバーに Web モジュールを配備することはできません。

本稼動環境以外での Web サービスの開発、テスト、配備で必要となる仮想サーバーは、通常、`server` だけです。ただし本稼動環境では、同一物理サーバー上でユーザーと顧客のそれぞれが専用の Web サーバーを持つように見せる機能をホスティングするため、通常は追加の仮想サーバーも使用されます。

## HTTP リスナー

各仮想サーバーは、1 つまたは複数の HTTP リスナーを通じてサーバーとクライアントの間の接続を提供します。各 HTTP リスナーは、IP アドレス、ポート番号、サーバー名、およびデフォルトの仮想サーバーを持つ待機ソケットです。

HTTP リスナーは、ポート番号と IP アドレスの一意の組み合わせを持つ必要があります。たとえば、IP アドレス 0.0.0.0 を指定すると、HTTP リスナーは設定されたすべての IP アドレスをマシンの特定のポートで待機できます。また、各リスナーに一意の IP アドレスを指定した上で、同一ポートを使用することもできます。

HTTP リスナーは IP アドレスとポート番号の組み合わせであるため、IP アドレスが同じでポート番号が異なる HTTP リスナーや (例: 1.1.1.1:8081 および 1.1.1.1:8082)、IP アドレスが異なっていてポート番号が同じ HTTP リスナー (例: 1.1.1.1:8081 および 1.2.3.4:8081。ただし、マシンがこれら両方のアドレスに応答するように設定されている場合) を複数使用することができます。

ただし、HTTP リスナーに単一のポート上ですべての IP アドレスを待機する 0.0.0.0 を使用する場合は、この同じポート上に、特定の IP アドレスを待機する HTTP リスナーを作成できません。たとえば、HTTP リスナーが 0.0.0.0:8080 (ポート 8080 のすべての IP アドレス) を使用する場合、別の HTTP リスナーが 1.2.3.4:8080 を使用することはできません。

通常、Application Server が稼動するシステムでアクセスできる IP アドレスは 1 つだけであるため、HTTP リスナーは、ポートが異なる 0.0.0.0 IP アドレスを通常使用し、役割ごとに異なるポート番号を使用します。システムが複数の IP アドレスにアクセスできる場合は、各アドレスを異なる役割に使用できます。

デフォルトでは、Application Server を起動すると、次の HTTP リスナーが準備されます。

- 仮想サーバー `server` に関連付けられた 2 つの HTTP リスナー `http-listener-1` および `http-listener-2`。`http-listener-1` ではセキュリティーが無効になり、`http-listener-2` ではセキュリティーが有効になります。

- 仮想サーバー `__asadmin` に関連付けられた HTTP リスナー `admin-listener`。このリスナーでは、セキュリティーが有効になります。

これらのリスナーはすべて、Application Server のインストールの間に HTTP サーバーポート番号として指定された IP アドレス 0.0.0.0 とポート番号を使用します。Application Server がポート番号のデフォルト値をそのまま使用した場合、`http-listener-1` はポート 8080、`http-listener-2` はポート 8181、`admin-listener` はポート 4849 を使用します。

各 HTTP リスナーはデフォルトの仮想サーバーを持ちます。デフォルトの仮想サーバーは、HTTP リスナーがその HTTP リスナーに関連付けられたどの仮想サーバーともホストコンポーネントが一致しないすべての要求 URL をルーティングする宛先のサーバーです。仮想サーバーと HTTP リスナーの関連付けは、仮想サーバーの `http-listeners` 属性に HTTP リスナーを指定することで行われます。

さらに、HTTP リスナー内のアクセプタスレッドの数を指定します。アクセプタスレッドは、接続を待機するスレッドです。アクセプタスレッドによって受け付けられ、接続キューと呼ばれるキューに入れられた接続は、ワークスレッドによって取り出されます。新しい要求が着信したときにいつでも対応できるように、常に十分な数のアクセプタスレッドを設定しておきますが、システムに負荷がかかり過ぎない数に抑える必要もあります。接続キューには、アクセプタスレッドによって受け付けられた新しい接続と、キープアライブ接続管理サブシステムによって管理される持続接続の両方が格納されます。

一連の要求処理スレッドが、接続キューから受信 HTTP 要求を取り出し、それらの要求を処理します。これらのスレッドは、HTTP ヘッダーを解析し、適切な仮想サーバーを選択し、要求処理エンジンを実行して要求を処理します。処理すべき要求がなくなったあと、その接続が `HTTP/1.1` を使用するか `Connection: keep-alive` ヘッダーを送信することで持続可能になっていた場合、要求処理スレッドは、その接続がアイドル状態にあると判断し、その接続をキープアライブ接続管理サブシステムに渡します。

キープアライブサブシステムは、そうしたアイドル状態の接続を定期的にポーリングし、活動中の接続が見つかるとそれらを接続キュー内に格納し、さらに処理できるようにします。要求処理スレッドは、そのキューから再び接続を取り出し、その要求を処理します。キープアライブサブシステムはマルチスレッド化されています。なぜなら、このサブシステムによって管理される接続の数が数万個に及ぶ可能性があるからです。効率的なポーリングテクニックに基づいて多数の接続がより少数の接続を含むサブセットへと分割され、どの接続で要求の準備が整ったか、あるいはどの接続のアイドル時間が閉じてもよいほど十分長い時間になったか、つまり、最大許容キープアライブタイムアウトを超えたかが判断されます。

HTTP リスナーのサーバー名は、サーバーがクライアントに送信する URL にリダイレクトの一部として表示されるホスト名です。この属性は、サーバーが自動的に生成する URL には影響しますが、サーバーに格納されているディレクトリやファイルの URL には影響しません。サーバーがエイリアスを使っている場合、通常は、この名前はエイリアス名です。クライアントが `Host:` ヘッダーを送信する場合、HTTP リスナーのサーバー名の代わりにホスト名がリダイレクトに指定されます。

リダイレクトポートを指定して、元の要求に指定されているポート番号とは異なるポート番号を使用します。リダイレクトは、次のいずれかの状況で行われます。

- リソースが別の位置に移動され、クライアントのアクセス対象のリソースが指定の URL に存在しない場合、サーバーは 404 を返す代わりに指定の応答コードを返し、応答のロケーションヘッダーに新しい位置を含めることで、クライアントを新しい位置にリダイレクトします。

- 通常の HTTP ポートで SSL などによって保護されているリソースにクライアントがアクセスを試みる場合、サーバーは要求を SSL 有効ポートにリダイレクトします。この場合、サーバーは、元のセキュリティー保護されていないポートを SSL 有効ポートに置き換えた新しい URL がロケーション応答ヘッダーに指定された応答を返します。クライアントは、この新しい URL に接続します。

また、HTTP リスナーのセキュリティーを有効にするかどうか、あるいは、どのセキュリティーの種類を使用するか (例: SSL プロトコルや暗号化方式の種類) も指定します。

Application Server に配備された Web アプリケーションにアクセスするには、Web アプリケーション用に指定したコンテキストルートとともに、`http://localhost:8080/` (または、セキュリティー保護されたアプリケーションでは `https://localhost:8181/`) という URL を使用します。管理コンソールにアクセスするには、URL `https://localhost:4849/` またはそのデフォルトコンテキストルートである `https://localhost:4849/asadmin/` を使用します。

仮想サーバーは既存の HTTP リスナーを指定する必要があり、ほかの仮想サーバーによってすでに使用されている HTTP リスナーを指定できないことから、新しい仮想サーバーを作成するときは、事前に少なくとも 1 つの HTTP リスナーを作成します。

# HTTP サービスに関する管理コンソールタスク

- 「HTTP サービスを設定する」

- 「HTTP サービスのアクセスログを設定する」

## HTTP サービスを設定する

##### 手順

1. ツリーコンポーネントで、「設定」ノードを展開します。

2. 設定するインスタンスを選択します。

   - 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス `server` の場合は、`server-config` ノードを選択します。

   - `default-config` のコピーを利用する将来のインスタンスのためにデフォルト設定を設定するには、`default-config` ノードを選択します。

3. 「HTTP サービス」ノードを選択します。

4. 「HTTP サービス」ページでは、サービスのすべての HTTP リスナーに適用されるプロパティーを設定できます。

   次の表には、これらのプロパティーが一覧表示されています。

   プロパティー名 | 説明 | デフォルト値
   --- | --- | ---
   `traceEnabled` | true に設定すると、TRACE 処理が有効になります。このプロパティーを false に設定すると、Application Server がクロスサイトスクリプティング攻撃の影響を受けにくくなります。 | false
   `monitoringCacheEnabled` | true に設定すると、Application Server は、統計クエリーへの回答用に HTTP サービスの統計のローカル値をキャッシュします。この値を使用すると、パフォーマンスが向上します。 false に設定すると、Application Server は、統計値ごとに HTTP サービスに対するクエリーを発行します。 | true
   `monitoringCacheRefreshInMillis` | 監視キャッシュの更新間隔をミリ秒単位で指定します。 | 5000
   `sslCacheEntries` | キャッシュ可能な SSL セッションの数を指定します。上限はありません。 | 10000
   `sslSessionTimeout` | SSL2 セッションがタイムアウトするまでの秒数を指定します。 | 100
   `ssl3SessionTimeout` | SSL3 セッションがタイムアウトするまでの秒数を指定します。 | 86400
   `sslClientAuthDataLimit` | クライアント証明書ハンドシェークフェーズでバッファリングされるアプリケーションデータの最大サイズをバイト単位で指定します。 | 1048576
   `sslClientAuthTimeout` | クライアント証明書ハンドシェークフェーズがタイムアウトするまでの秒数を指定します。 | 60
   `keepAliveQueryMeanTime` | 希望するキープアライブ応答時間をミリ秒単位で指定します。 | 100
   `keepAliveQueryMaxSleepTime` | キープアライブ接続に新しい要求の有無をポーリングしたあとのスリープ時間の上限をミリ秒単位で指定します。 | 100
   `stackSize` | ネイティブスレッドの最大スタックサイズを指定します。 | OS/マシンに依存
   `statsProfilingEnabled` | false に設定すると、HTTP サービスによる監視統計の記録が無効になり、パフォーマンスが向上します。このプロパティーを false に設定すると、HTTP サービスの監視を有効にしても実際には有効にならなくなります。 | true
   `chunkedRequestBufferSize` | 要求データのチャンク解除に対するデフォルトバッファーサイズをバイト単位で指定します。 | 8192
   `chunkedRequestTimeoutSeconds` | 要求データのチャンク解除に対するデフォルトタイムアウトを秒単位で指定します。 | 60
   `dnsCacheEnabled` | true に設定すると、DNS キャッシュに関する統計をユーザーが監視できるようになります。このプロパティーが有効になるのは、「HTTP プロトコル」タブの「DNS 検索」ボックスが選択されている場合だけです。それ以外の場合、このプロパティーの設定は無視されます。 | false

5. 「アクセスログ」タブをクリックして、アクセスログのローテーションを設定します。

   その他のタブをクリックして、要求処理、キープアライブサブシステム、接続プール、HTTP プロトコル、および HTTP ファイルキャッシュを設定します。

6. 「保存」をクリックします。

## HTTP サービスのアクセスログを設定する

このページを使用して、仮想サーバーのアクセスログのローテーションを有効にし、設定します。これらのログは、domain-dir`/logs/access` ディレクトリにあり、次のように命名されます。virtual-server-name`_access_log%YYYY;%MM;%DD-%hh;h%mm;m%ss;s`

「デフォルト」をクリックして、デフォルト値を読み込みます。

##### 手順

1. 「ファイルローテーション」ボックスにチェックマークを付けて、ファイルローテーションを有効にします。

   デフォルトで、ファイルローテーションは有効です。

2. 「ローテーションポリシー」ドロップダウンリストから、ポリシーを選択します。

   使用可能なポリシーは `time` だけです。

3. 「ローテーション間隔」フィールドに、数値を入力してアクセスログのローテーション間の分数を指定します。

   このフィールドは、「ローテーションポリシー」が `time` の場合にのみ有効です。デフォルト値は 1440 分です。

4. 「ローテーションサフィックス」フィールドに、文字列値を入力して、ローテーション後にログファイル名に追加されるサフィックスを指定します。

   デフォルトは、`%YYYY;%MM;%DD;-%hh;h%mm;m%ss;s` です。

5. 「形式」フィールドに、文字列値を入力してアクセスログの形式を指定します。

   次の表に示されている形式を使用してください。デフォルトの形式は、`%client.name% %auth-user-name% %datetime% %request% %status% %response.length%` です。

   データ | トークン
   --- | ---
   クライアントホスト名 | `%client.name%`
   クライアント DNS | `%client.dns%`
   システム日付 | `%datetime%`
   全 HTTP 要求行 | `%request%`
   状態 | `%status%`
   応答コンテンツ長 | `%response.length%`
   リファラーヘッダー | `%header.referer%`
   ユーザーエージェント | `%header.user-agent%`
   HTTP メソッド | `%http-method%`
   HTTP URI | `%http-uri%`
   HTTP クエリー文字列 | `%query-str%`
   HTTP プロトコルバージョン | `%http-version%`
   アクセプトヘッダー | `%header.accept%`
   日付ヘッダー | `%header.date%`
   If-Modified-Since ヘッダー | `%header.if-mod-since%`
   承認ヘッダー | `%header.auth%`
   RFC 2616 で定義された任意の有効な HTTP ヘッダー値 (`any` も有効なヘッダー値。ここでは変数として指定されている) | `%header.`any`%`
   承認ユーザーの名前 | `%auth-user-name%`
   Cookie の値 | `%cookie.value%`
   仮想サーバーの ID | `%vs.id%`

6. 「保存」をクリックして変更を保存するか、または「デフォルトを読込み」を選択してデフォルト設定に戻します。

## HTTP サービスの要求処理スレッドを設定する

##### 手順

1. 「デフォルトを読込み」をクリックして、デフォルト値を読み込みます。

2. 「スレッド数」フィールドに、要求処理スレッドの最大数を示す数値を入力します。

   デフォルトは 128 です。

3. 「初期スレッド数」フィールドに、サーバー起動時に利用可能な要求処理スレッドの数を入力します。

   デフォルトは 48 です。

4. 「スレッドの増分」フィールドに、要求数が初期スレッド数を超えた場合に追加される要求処理スレッドの数を入力します。

   デフォルトは 10 です。

5. 「要求タイムアウト」フィールドに、要求がタイムアウトするまでの秒数を入力します。

   デフォルトは 30 秒です。

6. 「バッファー長」フィールドに、要求処理スレッドが要求データの読み取り時に使用するバッファーのサイズをバイト単位で入力します。

   デフォルトは 4096 バイトです。

7. 「保存」をクリックして変更を保存するか、または「デフォルトを読込み」を選択してデフォルト設定に戻します。

## HTTP サービスのキープアライブサブシステムを設定する

##### 手順

1. 「デフォルトを読込み」をクリックして、デフォルト値を読み込みます。

2. 「スレッド数」フィールドに、使用するキープアライブスレッドの数を入力します。

   デフォルトは 1 です。

3. 「最大接続数」フィールドに、保持される持続接続の最大数を入力します。

   デフォルトは 256 です。

4. 「タイムアウト」フィールドに、キープアライブ接続を開いたままにしておく最大秒数を入力します。

   デフォルトは 30 秒です。

5. 「保存」をクリックして変更を保存するか、または「デフォルトを読込み」を選択してデフォルト設定に戻します。

## HTTP サービスの接続プールを設定する

##### 手順

1. 「デフォルトを読込み」をクリックして、デフォルト値を読み込みます。

2. 「最大保留カウント」フィールドに、HTTP リスナーに対して許可する保留接続の最大数を入力します。

   デフォルトは 4096 です。

3. 「キューサイズ」フィールドに、接続キューの最大サイズをバイト単位で入力します。

   この値は、サーバーが保持できる未処理接続の最大数も指定します。デフォルトは 4096 です。

4. 「受信バッファーサイズ」フィールドに、HTTP リスナーの受信バッファーのサイズを入力します。

   デフォルトは 4096 です。

5. 「送信バッファーサイズ」フィールドに、HTTP リスナーの送信バッファーのサイズを入力します。

   デフォルトは 8192 です。

6. 「保存」をクリックして変更を保存するか、または「デフォルトを読込み」を選択してデフォルト設定に戻します。

## HTTP サービスの HTTP プロトコルを設定する

##### 手順

1. 「デフォルトを読込み」をクリックして、デフォルト値を読み込みます。

2. 「バージョン」フィールドに、使用する HTTP プロトコルのバージョン (`HTTP/1.0`、`HTTP/1.1` のいずれか) を入力します。

   デフォルトは `HTTP/1.1` です。

3. 「DNS 検索」ボックスを選択してクライアントに対する DNS エントリの検索を有効にします。

   デフォルトは false です。

4. 「SSL」ボックスのチェックマークを外してサーバーのセキュリティーをグローバルに無効にします。

   この値を true のままにしておけば、セキュリティーが有効になっているリスナーで SSL を使用できます。デフォルトは true です。

5. 「強制応答タイプ」フィールドに、拡張子に一致する利用可能な MIME マッピングが見つからない場合に使用する応答タイプを入力します。

   デフォルト値は、`text/html; charset=iso-8859-1` です。

6. 「デフォルト応答タイプ」フィールドに、デフォルト応答タイプを入力します。

   デフォルト値は、`text/html; charset=iso-8859-1` です。値は、コンテンツタイプ、エンコーディング、言語、および文字セットから構成される、セミコロンで区切られた文字列になります。

7. 「保存」をクリックして変更を保存するか、または「デフォルトを読込み」を選択してデフォルト設定に戻します。

## HTTP サービスの HTTP ファイルキャッシュを設定する

ファイルキャッシュには静的コンテンツが格納されるため、サーバーはそうしたコンテンツに対する要求をすばやく処理できます。

##### 手順

1. 「デフォルトを読込み」をクリックして、デフォルト値を読み込みます。

2. 「グローバル」ボックスにチェックマークを付けてファイルキャッシュを有効にします。

   デフォルトは true です。

3. 「ファイル転送」ボックスにチェックマークを付けることで、Windows 上で `TransmitFileSystem` メソッドを有効にします。

   デフォルトは false です。

4. 「最大有効期間」フィールドに、有効なキャッシュエントリの最大有効期間を秒単位で入力します。

   デフォルトは 30 秒です。

5. 「最大ファイル数」フィールドに、ファイルキャッシュ内のファイルの最大数を入力します。

   デフォルトは 1024 です。

6. 「ハッシュ初期サイズ」フィールドに、ハッシュバケットの初期数を入力します。

   デフォルトは 0 です。

7. 「ファイルサイズ上限 (中)」フィールドに、メモリーがマップされたファイルとしてキャッシュできるファイルの最大サイズをバイト単位で入力します。

   デフォルトは 537,600 バイトです。

8. 「ファイルサイズ (中)」フィールドに、メモリーにマップされたファイルとしてキャッシュされるすべてのファイルの合計サイズをバイト単位で入力します。

   デフォルトは 10,485,760 バイトです。

9. 「ファイルサイズ上限 (小)」フィールドに、メモリーに読み込めるファイルの最大サイズをバイト単位で入力します。

   デフォルトは 2048 バイトです。

10. 「ファイルサイズ (小)」フィールドに、メモリーに読み込まれるすべてのファイルの合計サイズをバイト単位で入力します。

    デフォルトは 1,048,576 バイトです。

11. 「ファイルキャッシュを有効化」ドロップダウンリストから `ON` または `OFF` を選択することで、ファイルサイズがファイルサイズ上限 (中) より小さい場合にファイルコンテンツのキャッシュを有効または無効にします。

    デフォルトは `ON` です。

12. 「保存」をクリックして変更を保存するか、または「デフォルトを読込み」を選択してデフォルト設定に戻します。

# 仮想サーバーに関する管理コンソールタスク

- 「仮想サーバーを作成する」

- 「仮想サーバーを編集する」

- 「仮想サーバーを削除する」

## 仮想サーバーを作成する

##### 手順

1. ツリーコンポーネントで、「設定」ノードを展開します。

2. 設定するインスタンスを選択します。

   - 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス `server` の場合は、`server-config` ノードを選択します。

   - `default-config` のコピーを利用する将来のインスタンスのためにデフォルト設定を設定するには、`default-config` ノードを選択します。

3. 「HTTP サービス」ノードを展開します。

4. 「仮想サーバー」ノードを選択します。

5. 「仮想サーバー」ページで「新規」をクリックします。

   「仮想サーバーを作成」ページが表示されます。

6. 「ID」フィールドで、仮想サーバーの一意の名前を入力します。

   この値は、仮想サーバーの内部的な識別に使用されます。これが HTTP クライアント側に表示されることはありません。HTTP クライアント側に表示するホスト名は、「ホスト」フィールドに指定する必要があります。

7. 「ホスト」フィールドに、サーバーが稼動するマシンのホスト名 (1 つまたは複数) を入力します。

   ネットワークの DNS サーバー (UNIX システムでは `/etc/hosts` ファイル) に登録されている、実際のホスト名または仮想ホスト名を使用します。

8. 「状態」セクションで、「オン」、「オフ」、または「無効」を選択します。

   デフォルトは「オン」です。

9. 「HTTP リスナー」フィールドは空のまま残します。

   このフィールドは、HTTP リスナーを作成し、このサーバーと関連付けたときに自動的に設定されます。

   このフィールドを使用するときは、既存の HTTP リスナーを指定する必要があります。ただし、別の仮想サーバーで使用されているリスナーを指定しないでください。指定した場合、サーバーログにエラーが表示されます。HTTP リスナーは、作成時に既存の仮想サーバーと関連付ける必要があるため、既存のすべてのリスナーはすでに別の仮想サーバーによって使用されています。

10. 「デフォルト Web モジュール」ドロップダウンリストから、仮想サーバーに配備されているその他の Web モジュールにマッピングできないすべての要求に対応する配備済み Web モジュールを選択します (配備されている場合)。

    デフォルトの Web モジュールが指定されない場合は、コンテキストルートが空の Web モジュールが使用されます。コンテキストルートが空の Web モジュールが存在しない場合は、システムのデフォルトの Web モジュールが作成され、使用されます。

11. 「ログファイル」フィールドに、この仮想サーバーからのログメッセージが記録されるファイルのパス名を入力します。

    デフォルトのサーバーログ domain-dir`/logs/server.log` にログメッセージを送信する場合は、このフィールドを空のまま残します。

12. 「追加プロパティー」で、仮想サーバーのプロパティーを追加する場合は「プロパティーを追加」をクリックします。

    プロパティーを追加するかどうかに関係なく、新しいサーバーはデフォルトプロパティー `docroot` および `accesslog` を持ち、それぞれにデフォルトの値が設定されます。

    次の表には、使用可能な仮想サーバーのプロパティーが一覧表示されています。

    プロパティー名 | 説明
    --- | ---
    `docroot` | サーバーのルートドキュメントディレクトリへの絶対パス。 デフォルトは domain-dir`/docroot`。
    `accesslog` | サーバーのアクセスログへの絶対パス。 デフォルトは domain-dir`/logs/access`。
    `sso-enabled` | false の場合、この仮想サーバーに対するシングルサインオンは無効となり、ユーザーは仮想サーバー上のアプリケーションごとに個別に認証を行う必要があります。 Application Server 上のアプリケーション間でのシングルサインオンは、サーブレットと JSP ページによってサポートされます。この機能により、複数のアプリケーションが同一のサインオン情報を共有できるため、ユーザーはアプリケーションごとにサインオンする必要がなくなります。 デフォルトは true。
    `sso-max-inactive-seconds` | クライアントが活動を停止後、何秒後にユーザーのシングルサインオンの記録をパージ可能にするかを指定します。シングルサインオンは同一仮想サーバー上の複数のアプリケーションに適用されるので、これらのアプリケーションのいずれかにアクセスすることでシングルサインオンの記録は有効なまま確保されます。 デフォルトは 300 秒 (5 分)。値を大きくするとユーザーのシングルサインオンの持続時間は長くなりますが、サーバー上のメモリー消費量も増加します。
    `sso-reap-interval-seconds` | 有効期限が切れたシングルサインオンの記録のパージを行う間隔を秒単位で指定します。 デフォルトは 60。
    `allowLinking` | true の場合、この仮想サーバー上に配備されているすべての Web アプリケーションに対し、シンボリックリンクのリソースが提供されます。個々の Web アプリケーションでこの設定をオーバーライドできます。それには、`sun-web.xml` ファイル内で `sun-web-app` のプロパティー `allowLinking` を次のように指定します。
        <sun-web-app>
           <property name="allowLinking"
              value="{true|false}"/>
        </sun-web-app>
    デフォルトは true。

13. 「了解」をクリックして、仮想サーバーを保存します。

##### 同機能を持つ asadmin コマンド

`create-virtual-server`

## 仮想サーバーを編集する

##### 手順

1. ツリーコンポーネントで、「設定」ノードを展開します。

2. 設定するインスタンスを選択します。

   - 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス `server` の場合は、`server-config` ノードを選択します。

   - `default-config` のコピーを利用する将来のインスタンスのためにデフォルト設定を設定するには、`default-config` ノードを選択します。

3. 「HTTP サービス」ノードを展開します。

4. 「仮想サーバー」ノードを選択します。

5. 編集する仮想サーバーを選択します。

6. 「仮想サーバーを編集」ページで、次のタスクを実行できます。

   - 「ホスト」フィールドのホスト名の変更。

   - 「状態」設定の値の変更。

   - HTTP リスナーの追加または削除。

   - 「デフォルト Web モジュール」の選択の変更。

   - 「ログファイル」の値の変更。

   - プロパティーの追加、削除、または変更。

7. 「保存」をクリックして変更を保存します。

## 仮想サーバーを削除する

##### 手順

1. ツリーコンポーネントで、「設定」ノードを展開します。

2. 設定するインスタンスを選択します。

   - 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス `server` の場合は、`server-config` ノードを選択します。

   - `default-config` のコピーを利用する将来のインスタンスのためにデフォルト設定を設定するには、`default-config` ノードを選択します。

3. 「HTTP サービス」ノードを展開します。

4. 「仮想サーバー」ノードを選択します。

5. 「仮想サーバー」ページで、削除する仮想サーバーの名前の隣のチェックボックスにチェックマークを付けます。

6. 「削除」をクリックします。

   仮想サーバー `__asadmin` を削除することもできますが、お勧めできません。削除する場合は、必要時に設定を復元できるように Application Server の `domain.xml` ファイルに含まれる `virtual-server` 要素を事前に安全な場所にコピーしておいてください。

##### 同機能を持つ asadmin コマンド

`delete-virtual-server`

# HTTP リスナーに関する管理コンソールタスク

- 「HTTP リスナーを作成する」

- 「HTTP リスナーを編集する」

- 「HTTP リスナーを削除する」

## HTTP リスナーを作成する

##### 手順

1. ツリーコンポーネントで、「設定」ノードを展開します。

2. 設定するインスタンスを選択します。

   - 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス `server` の場合は、`server-config` ノードを選択します。

   - `default-config` のコピーを利用する将来のインスタンスのためにデフォルト設定を設定するには、`default-config` ノードを選択します。

3. 「HTTP サービス」ノードを展開します。

4. 「HTTP リスナー」ノードを選択します。

5. 「HTTP リスナー」ページで「新規」をクリックします。

   「HTTP リスナーを作成」ページが表示されます。

6. 「名前」フィールドに、リスナーの名前を入力します。

7. サーバーの再起動時にリスナーを有効にしないようにするには、「リスナー」フィールドの「有効」ボックスのチェックマークを外します。

8. 単一ポート番号を使用して、サーバーのすべての IP アドレスを待機するようにリスナーを設定するときは、「ネットワークアドレス」に「0.0.0.0」を入力します。それ以外の場合は、サーバーの有効な IP アドレスを入力します。

9. 「リスナーポート」フィールドに、ネットワークアドレス 0.0.0.0 を使用する場合は一意のポート番号を指定し、別の IP アドレスを使用する場合は任意のポート番号を指定します。

10. 「デフォルト仮想サーバー」ドロップダウンリストから仮想サーバーを選択します。

11. 「サーバー名」フィールドに、サーバーがクライアントに送信する URL で使用されるホスト名を入力します。サーバーがエイリアスを使っている場合、この名前はエイリアス名です。

    サーバーがエイリアスを使用していない場合は、このフィールドを空のまま残します。

12. 「詳細」セクションでは、次のいずれかの操作を行います。

    - 要求を別のポートにリダイレクトするには、「リダイレクトポート」フィールドに値を入力します。Application Server は、次の 2 つの条件が存在する場合、要求を自動的にリダイレクトします。

      - このリスナーが非 SSL 要求をサポートしている。

      - 着信した要求に適用されるセキュリティー制約によって SSL 伝送が必要である。

        デフォルトでは、Application Server は元の要求に指定されているポート番号を使用します。

    - アクセプタスレッドの数を変更します。

    - 「Powered By」チェックボックスからチェックマークを外し、サーブレットが生成する HTTP 応答ヘッダー内に `X-Powered-By: Servlet/2.4` ヘッダーが含まれないようにします。

      Java Servlet 2.4 仕様では、サーブレットが生成する応答にコンテナがこのヘッダーを追加できるように定義されています。同様に、JavaServer PagesTM (JSPTM) 2.0 仕様では、JSP テクノロジを使用する応答にオプションとして `X-Powered-By: JSP/2.0` ヘッダーを追加するように定義されています。Web アプリケーションでは、`X-Powered-By: JSP/2.0` ヘッダーを含めることがデフォルトで有効になっています。これらのヘッダーの目的は、Web サイトの管理者がサーブレットと JSP テクノロジの使用に関する統計データを収集することです。

      JSP ページの `X-Powered-By` ヘッダーの有効化と無効化に関する詳細ついては、『Application Server 開発者ガイド』の「配備記述子ファイル」という章を参照してください。このマニュアルへのリンクについては、「詳細情報」を参照してください。

      本稼動環境では、`X-Powered-By` ヘッダーの生成を省略し、使用されている技術が知られないようにすることができます。

13. セキュリティー保護されていないリスナーを作成するには、「了解」をクリックします。

14. このページの「SSL」セクションで、リスナーが SSL、TLS、あるいはこの両方のセキュリティーを使用するように設定できます。

    セキュリティー保護されたリスナーを設定するには、次の手順を実行します。

15. 「セキュリティー」フィールドの「有効」ボックスにチェックマークを付けます。

16. サーバーへの認証をこのリスナーを使っている個々のクライアントに任せる場合は、「クライアント認証」フィールドの「有効」ボックスにチェックマークを付けます。

17. 「証明書のニックネーム」フィールドに、既存サーバーの鍵ペアと証明書の名前を入力します。詳細については、「セキュリティー」の章を参照してください。

18. SSL3/TLS セクションでは次の手順を実行します。

    1. リスナーで有効にするセキュリティープロトコルにチェックマークを付けます。SSL3 と TLS のどちらかに、あるいはこの両方にチェックマークを付けます。

    2. プロトコルが使用する暗号化方式にチェックマークを付けます。すべての暗号化方式を有効にするには、「サポートされるすべての暗号化方式群」にチェックマークを付けます。個別の暗号化方式を有効にすることもできます。

19. これにより、デフォルト仮想サーバーとして指定した仮想サーバーの「HTTP リスナー」フィールドにこのリスナーが表示されるようになります。

##### 同機能を持つ asadmin コマンド

`create-http-listener` および `create-ssl`

## HTTP リスナーを編集する

##### 手順

1. ツリーコンポーネントで、「設定」ノードを展開します。

2. 設定するインスタンスを選択します。

   - 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス `server` の場合は、`server-config` ノードを選択します。

   - `default-config` のコピーを利用する将来のインスタンスのためにデフォルト設定を設定するには、`default-config` ノードを選択します。

3. 「HTTP サービス」ノードを展開します。

4. 「HTTP リスナー」ノードを選択します。

5. 編集する HTTP リスナーを選択します。

6. 「HTTP リスナーを編集」ページで、任意の設定を変更してください。

7. 「保存」をクリックして変更を保存します。

## HTTP リスナーを削除する

##### 手順

1. ツリーコンポーネントで、「設定」ノードを展開します。

2. 設定するインスタンスを選択します。

   - 特定のインスタンスを設定するには、そのインスタンスの設定ノードを選択します。たとえば、デフォルトインスタンス `server` の場合は、`server-config` ノードを選択します。

   - `default-config` のコピーを利用する将来のインスタンスのためにデフォルト設定を設定するには、`default-config` ノードを選択します。

3. 「HTTP サービス」ノードを展開します。

4. 「HTTP リスナー」ノードを選択します。

5. 「HTTP リスナー」ページで、削除する HTTP リスナーの隣のチェックボックスにチェックマークを付けます。

6. 「削除」をクリックします。

   HTTP リスナー `http-listener-1`、`http-listener-2`、`admin-listener` を削除することもできますが、お勧めできません。削除する場合は、必要時に設定を復元できるように Application Server の `domain.xml` ファイルに含まれる `http-listener` 要素を事前に安全な場所にコピーしておいてください。

##### 同機能を持つ asadmin コマンド

`delete-http-listener`

- Previous: 第 11 章 トランザクション
- Next: 第 13 章 ORB (Object Request Broker) の設定

- © 2010, Oracle Corporation and/or its affiliates