Sun ONE ロゴ     前へ      目次      索引      次へ     
Sun ONE Application Server 7, Update 1 管理者ガイド



第 15 章   仮想サーバーの使用

この章では、Sun ONE Application Server による仮想サーバーのセットアップおよび管理方法を説明します。仮想サーバーのコンテンツ管理設定の設定方法については、「仮想サーバーコンテンツの管理」を参照してください。

この章では次のトピックについて説明します。

仮想サーバーの概要

仮想サーバーを使用すると、インストール済みの単一のサーバーで、複数の企業または個人のドメイン名、IP アドレス、およびいくつかのサーバー監視機能を提供することが可能になります。これにより、ユーザーは、あたかも独自の Web サーバーを持っているかのように操作できますが、実際には、管理者がハードウェアを提供し、仮想サーバーを管理しています。

アンバンドル版の Sun ONE Application Server をインストールすると、アプリケーションサーバーインスタンスのデフォルトの仮想サーバーが作成されます。デフォルトのアプリケーションサーバーインスタンス server1 には、server1 という名前の仮想サーバーが作成されます。Solaris 9 バンドル版を使う場合は、サーバーインスタンスを作成する必要があります。インスタンスを作成すると、同じ名前の仮想サーバーも同時に作成されます。仮想サーバーは、アプリケーションサーバーインスタンスを作成するたびに作成されます。仮想サーバーの作成方法と設定方法については、「仮想サーバーの作成と設定」を参照してください。仮想サーバーの配備方法については、「仮想サーバーの配備」を参照してください。

仮想サーバーは、仮想サーバーごとに使用可能な Sun ONE Application Server の HTTP 機能を制御します。複数の仮想サーバーを使用する必要はありませんが、アプリケーションサーバーインスタンスとともに作成されるデフォルトの仮想サーバーを設定して、このアプリケーションサーバーインスタンスの特定のプロパティを設定する必要はあります。

仮想サーバーの設定は、instance_dir/config ディレクトリ内の server.xml ファイルの virtual-server 要素に格納されます。このファイルの詳細については、『Sun ONE Application Server 管理者用設定ファイルリファレンス』を参照してください。

仮想サーバーに関連する一部の情報は、obj.conf ファイルに格納されます。obj.conf ファイルは、仮想サーバーごとに用意されます。

この節には次の項目があります。

HTTP リスナー

サーバーとクライアント間の接続は、HTTP リスナー (待機ソケット) 上で行われます。各 HTTP リスナーには、IP アドレス、ポート番号、返されるサーバー名、およびデフォルトの仮想サーバーが割り当てられます。HTTP リスナーが、マシン上の指定されたポートですべての設定済み IP アドレスを待機するように設定したい場合は、IP アドレスとして 0.0.0.0、any、ANY、INADDR_ANY のいずれかを指定します。HTTP リスナーの作成方法と設定方法については、「HTTP リスナーの作成と設定」を参照してください。

アンバンドル版の Sun ONE Application Server をインストールすると、http-listener-1 という HTTP リスナーが自動的に作成されます。この HTTP リスナーは、IP アドレス 0.0.0.0 と、インストール時に HTTP サーバーポート番号として指定したポート番号を使用します。なお、デフォルトのポート番号は 80 です。UNIX 環境で、スーパーユーザー以外のユーザーがインストールした場合は、1024 になります。デフォルトの HTTP リスナーは削除できません。複数の仮想サーバーを使う場合は、そのすべてでデフォルトの HTTP リスナーを使うか、複数の HTTP リスナーを使うかを選択できます。

Solaris 9 バンドル版の Sun ONE Application Server では、サーバーインスタンスの作成時に HTTP リスナーが作成されます。IP アドレスは 0.0.0.0 で、ポート番号はインスタンスの作成時に指定した番号になります。

HTTP リスナーは IP アドレスとポート番号の組み合わせです。このため、IP アドレスが同じでポート番号の異なる HTTP リスナーや、IP アドレスは異なるがポート番号は同じの HTTP リスナーを使用できます。マシンが各アドレスに応答するように設定されていれば、たとえば、1.1.1.1:81 と 1.1.1.1:82、1.1.1.1:81 と 1.2.3.4:81 のような IP アドレスを共存させることができます。しかし、単一のポート上ですべての IP アドレスを待機する 0.0.0.0 を使用する場合は、この同じポート上に、特定の IP アドレスを待機する IP アドレスを HTTP リスナーに設定することはできません。たとえば、HTTP リスナー 0.0.0.0:80 (ポート 80 上のすべての IP アドレスを待機) を設定すると、 1.2.3.4:80 を使用する HTTP リスナーを作成することはできません。

それぞれの HTTP リスナーには、要求に指定されている仮想サーバーに接続できない場合に、要求のリダイレクト先となるデフォルトの仮想サーバーがあります。

さらに、HTTP リスナー内のアクセプタスレッド (受け入れスレッド) の数を指定します。受け入れスレッドは、接続を待機するスレッドです。アクセプタスレッドによって受け入れられ、キューに入れられた接続は、ワーカースレッドによって取り出されます。新しい要求が着信したときにいつでも対応できるように、常に十分な数の受け入れスレッドを確保しておくのが理想的ですが、システムに負荷がかかり過ぎない数に抑える必要があります。デフォルトの受け入れスレッド数は 1 です。システム上の CPU ごとに受け入れスレッドを 1 つずつ確保するのが適切です。パフォーマンスに問題があるときは、この値を調整できます。

HTTP リスナーのセキュリティを有効にするかどうか、また、セキュリティの種類 (SSL の種類や暗号化方式の種類など) も指定します。

仮想サーバー

仮想サーバーを作成するときは、まず、その仮想サーバーの種類を決定する必要があります。IP アドレスベースの仮想サーバーか、URL ホストベースの仮想サーバーを作成できます。作成するには、仮想サーバー ID、1 つ以上の HTTP リスナー、および 1 つ以上の URL ホストを指定するだけで済みます。

この節には次の項目があります。

仮想サーバーの種類

すべての仮想サーバーには URL ホストが指定されます。同時に、その仮想サーバーを HTTP リスナーに基づいた IP アドレスに関連づけます。仮想サーバーの HTTP リスナーが特定の IP アドレスを待機する場合、この仮想サーバーは IP アドレスベースの仮想サーバーと呼ばれます。

複数の仮想サーバーが同じ IP アドレスを待機する場合、この仮想サーバーは URL ホストとして扱われ、URL ホストベースの仮想サーバーと呼ばれます。

新しい要求を着信すると、サーバーは、IP アドレスまたは Host ヘッダーの値から、この要求の送信先となる仮想サーバーを決定します。サーバーは、最初に IP アドレスを評価します。詳細については、「要求を処理する仮想サーバーの選択」を参照してください。

IP アドレスベースの仮想サーバー

単一のコンピュータに複数の IP アドレスを設定する場合は、オペレーティングシステムでマッピングするか、カードを追加する必要があります。オペレーティングシステムで複数の IP アドレスを設定する際、Windows 環境ではネットワークコントロールパネルを使用します。UNIX 環境では ifconfig ユーティリティを使用します。ifconfig の使用方法はプラットフォームによって異なります。詳細については、オペレーティングシステム付属のマニュアルを参照してください。

IP アドレスベースの仮想サーバーを作成するときは、特定の IP アドレスを待機する HTTP リスナーを作成します。次に、その HTTP リスナーのデフォルトの仮想サーバーとして関連づけます。仮想サーバーの詳しい配備方法については、「仮想サーバーの配備」を参照してください。

URL ホストベースの仮想サーバー

URL ホストベースの仮想サーバーをセットアップする場合は、各仮想サーバーに固有の URL ホストを割り当てます。サーバーは、要求をその Host 要求ヘッダーの内容によって、正しい仮想サーバーに転送します。

たとえば、aaabbbccc という顧客の仮想サーバーをセットアップし、それぞれの顧客に個別のドメイン名を割り当てるには、まず、各顧客の URL (www.aaa.com,www.bbb.comwww.ccc.com) が HTTP リスナーの IP アドレスに解釈処理されるように、DNS を設定します。次に、各仮想サーバーの URL ホストを正しく設定します (www.aaa.com など)。/etc/hosts ファイルでホストと IP アドレスをマップします。

単一の HTTP リスナーに関連付けることができる URL ホストベースの仮想サーバー数に制限はありません。

URL ホストベースの仮想サーバーは、Host 要求ヘッダーを使ってユーザーに正しいページを表示するので、クライアントソフトウェアによってはこの種類の仮想サーバーを使用できない場合もあります。HTTP Host ヘッダーをサポートしない古いクライアントソフトウェアがこれに該当します。これらのクライアントは、HTTP リスナーのデフォルトの仮想サーバーを使用します。

デフォルトの仮想サーバー

URL ホストベースの仮想サーバーは、要求の Host ヘッダーを使って選択されます。エンドユーザーのブラウザが Host ヘッダーを送信しない場合、またはサーバーが指定された Host ヘッダーを検出できない場合、HTTP リスナーのデフォルトの仮想サーバーが要求に対処します。

IP アドレスベースの仮想サーバーのときも、Sun ONE Application Server が指定された IP アドレスを検出できない場合、HTTP リスナーのデフォルトの仮想サーバーが要求に対処します。デフォルトの仮想サーバーを設定して、特定のドキュメントルートからエラーメッセージまたはサーバーページを送信させることができます。



HTTP リスナーのデフォルトの仮想サーバーと、サーバーのインストール時に作成されたデフォルトの仮想サーバーは別のものです。デフォルトの仮想サーバーは、デフォルトのアプリケーションサーバーインスタンス用の仮想サーバーです。HTTP リスナーのデフォルトの仮想サーバーは、ユーザーがデフォルトとして指定した任意の仮想サーバーです。



HTTP リスナーを作成したら、デフォルトの仮想サーバーを指定します。デフォルトの仮想サーバーはいつでも変更可能です。

obj.conf ファイル

デフォルト設定では、仮想サーバーごとに obj.conf ファイルが作成され、仮想サーバーの設定が保存されます。管理インタフェースまたはコマンド行インタフェースを使って設定を変更すると、この変更は仮想サーバーの obj.conf ファイルを含む設定ファイルに自動的に反映されます。すべての obj.conf ファイルは、instance_dir/config ディレクトリにあります。このマニュアルで示す「obj.confファイル」とは常に、すべての obj.conf ファイル、または説明中の仮想サーバーの obj.conf ファイルのことを指します。

プレフィックスを持たない obj.conf ファイルは、各仮想サーバーの obj.conf ファイルを作成するときに Sun ONE Application Server が使用するテンプレートです。このファイルを編集しても既存の仮想サーバーには影響しません。ただし、それ以後に作成する仮想サーバーには影響します。obj.conf ファイルを直接編集する方法については、『Sun ONE Application Server 管理者用設定ファイルリファレンス』を参照してください。

デフォルト設定では、アクティブな obj.conf ファイルには virtual_server_name-obj.conf という名前がつけられます。サーバーインスタンスのデフォルトの仮想サーバーにはインスタンスに基づいた名前がつけらるので、サーバーインスタンスの作成時に obj.conf ファイルには instance_name-obj.conf という名前がつけられます。これらのファイルの 1 つを直接、または管理インタフェースを使って編集すると、仮想サーバーの設定が変更されます。

要求を処理する仮想サーバーの選択

サーバーが要求を処理するには、HTTP リスナーから要求を受け取り、その要求を適切な仮想サーバーに転送する必要があります。ここでは、仮想サーバーの決定方法について説明します。

  • HTTP リスナーがデフォルトの仮想サーバーのみに対して設定されている場合、この仮想サーバーが選択されます。
  • HTTP リスナーが複数の仮想サーバーに対して設定されている場合、Host ヘッダーと仮想サーバーの hosts 属性が照合されます。Host ヘッダーが存在しない場合、または hosts 属性と一致しない場合は、その HTTP リスナーのデフォルトの仮想サーバーが選択されます。

仮想サーバーが SSL HTTP リスナーに対して設定されている場合、サーバーの起動時に、仮想サーバーの hosts 属性と証明書のサブジェクトパターンが照合されます。これらが一致しない場合は警告が生成され、サーバーログに書き込まれます。

仮想サーバーが決定すると、Sun ONE Application Server は仮想サーバーの obj.conf ファイルを実行します。obj.conf ファイルのどの指令を実行するかを決定する仕組みについては、『Sun ONE Application Server 管理者用設定ファイルリファレンス』を参照してください。

ドキュメントルート

ドキュメントルート (一次ドキュメントディレクトリ) は、仮想サーバーの全ファイルを格納してリモートクライアントに提供するための中心的なディレクトリです。

ドキュメントルートを使用すると、仮想サーバー上のファイルへのアクセスを簡単に制限できます。また、URL に指定されたパスは一次ドキュメントディレクトリへの相対パスであるため、URL を変更せずに、簡単にドキュメントを新しいディレクトリ (別のディスク上の場合もある) に移動することができます。

たとえば、install_dir/docs というドキュメントディレクトリでは、http://www.sun.com/products/info.html などの要求によって install_dir/docs/info.html 内のファイルを検索します。ドキュメントルートを変更する (つまり、すべてのファイルおよびサブディレクトリを移動する) 場合も、仮想サーバーが使用するドキュメントルートを変更するだけなので、すべての URL を新しいディレクトリにマッピングする必要はありません。また、クライアントに新しいディレクトリ内を検索させる必要もありません。

Sun ONE Application Server のデフォルトのインスタンス (server1) のドキュメントルートが、server1 アプリケーションサーバーインスタンス内に作成された仮想サーバーのドキュメントルートになります。作成された各仮想サーバーのこのディレクトリは、オーバーライドすることができます。

仮想サーバーでの Sun ONE Application Server の機能の使用

Sun ONE Application Server は、SSL やアクセス制御など、仮想サーバーで使用できる機能を多数提供します。次の節では、これらの機能について説明します。また、詳しい情報の参照先も紹介します。

この節には次の項目があります。

仮想サーバーでの SSL の使用

仮想サーバーで SSL を使用するときは、ほとんどの場合、IP アドレスベースの仮想サーバーを使用します。通常、ポートは 443 を使用します。Sun ONE Application Server は、要求の送信先 URL ホストを決定する前に、その要求を読み取る必要があるため、URL ホストベースの仮想サーバーで SSL を使用するのは困難です。サーバーが要求を読み取ると、セキュリティ情報をやりとりする最初のハンドシェークが発生したことになります。

唯一の例外は、URL ホストベースの全仮想サーバーが同一の SSL 設定を持っている場合です。たとえば、「ワイルドカード証明書」を使用して、同一のサーバー証明書を持っている場合です。詳細は、『Sun ONE Application Server セキュリティ管理者ガイド』を参照してください。

仮想サーバーに SSL を実装する方法として、仮想サーバーに 2 つの HTTP リスナーを設定する方法があります。一方の HTTP リスナーは、SSL を使ってポート 443 で待機する設定にします。もう一方は SSL を使用しない設定にします。通常、ユーザーは SSL を使用しない HTTP リスナーから仮想サーバーにアクセスします。トランザクションをセキュリティ保護する必要が生じた場合、ユーザーは、Web ページ上のボタンをクリックして、トランザクションのセキュリティ保護を開始します。その後、要求にはセキュリティ保護された HTTP リスナーが使用されます。

SSL トランザクションは、SSL を使用しないトランザクションよりもかなり時間がかかるため、必要な場合以外は使用されません。通常は、SSL を使用しないより高速な接続が使用されます。

Sun ONE Application Server と仮想サーバーのセキュリティの設定および使用方法については、『Sun ONE Application Server セキュリティ管理者ガイド』を参照してください。仮想サーバーに SSL を設定した例については、「例 2: セキュリティの保護されたサーバー」を参照してください。

アクセスログファイルとサーバーログファイルの使用

アクセスログファイルには、仮想サーバーへの HTTP アクセスが記録されます。標準の設定では、新しい仮想サーバーを作成すると、アプリケーションサーバーインスタンスのログファイルがアクセスログファイルとして使用されます。多くの場合、仮想サーバーごとに専用のログファイルを用意する必要があります。このためには、各仮想サーバーのログのパスを変更します。仮想サーバーへのすべてのアクセスを同じアクセスログファイルに記録したい場合は、仮想サーバーのログ設定を変更して、ログファイルに仮想サーバーの ID を記述します。アプリケーションサーバーインスタンスのログ設定の変更については、「ログの使用」を参照してください。

サーバーログファイルには、情報メッセージとエラーが記録されます。標準の設定では、新しい仮想サーバーを作成すると、アプリケーションサーバーインスタンスのログファイルがログファイルとして使用されます。各仮想サーバーのログファイルは変更が可能です。

仮想サーバーでのアクセス制御機能の使用

各仮想サーバーには、個別にアクセス制御機能を設定できます。LDAP データベースを使ってユーザーやグループを認証させるように、各仮想サーバーを設定することもできます。詳細は、『Sun ONE Application Server セキュリティ管理者ガイド』を参照してください。

仮想サーバーでの CGI の使用

仮想サーバーで CGI を使用できます。仮想サーバーごとに CGI を格納するディレクトリを設定し、CGI のファイルタイプを指定します。詳細は、『Sun ONE Application Server Web アプリケーション開発者ガイド』を参照してください。

HTTP リスナーの作成と設定

サーバーが要求を処理するには、HTTP リスナーから要求を受け取り、その要求を適切な仮想サーバーに転送する必要があります。サーバーのインストール時またはそれ以後にサーバーインスタンスを作成すると、http-listener-1 という HTTP リスナーが自動的に作成されます。この HTTP リスナーは、IP アドレス 0.0.0.0 を使用します。また、アプリケーションサーバーのポートとして指定されたポートを使用します。デフォルトの HTTP リスナーは削除できません。

この節には次の項目があります。

HTTP リスナーの作成

管理インタフェースを使って HTTP リスナーを作成するには、次の手順を実行します。

  1. 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
  2. 「HTTP リスナー」をクリックします。
  3. 「新規」をクリックします。
  4. フィールドに必要な情報を入力します。
  5. HTTP リスナーは、ポート番号と IP アドレスの一意な組み合わせになります。IPv4 アドレスまたは IPv6 アドレスを使用できます。IP アドレスベースの仮想サーバー用の HTTP リスナーを作成したい場合は、この HTTP リスナーに特定の IP アドレスを指定します。

    「戻すサーバー名」フィールドには、サーバーがクライアントに送信する URL に含まれるホスト名を指定します。これは、サーバーが自動的に生成する URL には影響するが、サーバーに格納されているディレクトリやファイルの URL には影響しません。サーバーがエイリアスを使っている場合、この名前はエイリアス名である必要があります。

    デフォルトの仮想サーバーは、その他の仮想サーバーが見つからない場合に HTTP リスナーの要求に応答する仮想サーバーです。詳細については、「要求を処理する仮想サーバーの選択」を参照してください。

    HTTP リスナーに要求を受け付けさせるためには、この HTTP リスナーを有効にする必要があります。

    さらに、この HTTP リスナー用に、セキュリティ機能を有効にしたり、詳細なプロパティを設定することもできます。IPV6 を指定するときは、「ファミリ」フィールドの inet6 の値を使います。この値が inet6 の場合、サーバーログでは、IPv4 アドレスに ::ffff:プレフィックスが付けられます。

  6. 「了解」をクリックします。

HTTP リスナーを作成するとき、デフォルトの仮想サーバーのフィールドには、必ず既存の仮想サーバーを入力します。最初はサーバーインスタンスの作成時に作成された仮想サーバーを使用します。必要に応じて、後から新しい仮想サーバーに切り替えることができます。

コマンド行インタフェースを使って HTTP リスナーを作成する場合は、asadmin ユーティリティの create-http-listener コマンドを使用します。作成した HTTP リスナーを一覧表示するには、list-http-listeners コマンドを使用します。

HTTP リスナーを作成するコマンドの構文は次のとおりです。

asadmin create-http-listener --user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] --address address [--instance instancename] --listenerport listener_port --defaultvs virtual_server --servername server_name [--family family] [--acceptorthreads acceptor_threads] [--blockingenabled blocking_enabled] [--securityenabled security_enabled] [--enabled enabled] listener_id

コマンド構文の詳細については、コマンド行インタフェースのヘルプを参照してください。asadmin の使い方の詳細については、「コマンド行インタフェースの使用」を参照してください。

HTTP リスナー設定の編集

管理インタフェースを使って HTTP リスナーの設定を編集するには、次の手順に従います。

  1. 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
  2. 「HTTP リスナー」を開きます。
  3. 編集する HTTP リスナーをクリックします。
  4. 設定内容に必要な変更を加え、「保存」をクリックします。

詳細については、オンラインヘルプを参照してください。

コマンド行インタフェースで asadmin ユーティリティを使って HTTP リスナーを編集することもできます。現在の設定を取得するときは get コマンド、新しい値を設定するときは set コマンドを使用します。

HTTP リスナーのすべての属性の値を取得するには、次のコマンドを実行します。

asadmin> get server_instance.http-listener.http_listener_name.*

たとえば、デフォルト HTTP リスナーの値を取得するときは、次のコマンドを実行します。

asadmin> get server1.http-listener.http-listener-1.*

属性に値を設定するには、次のコマンドを実行します。

asadmin> set server_instance.http-listener.http_listener_name.attribute_name=value

たとえば、http-listener-1 の属性 defaultVirtualServerserver2 という値を設定するときは、次のコマンドを実行します。

asadmin> set server1.http-listener.http-listener-1.defaultVirtualServer=server2

コマンド構文の詳細については、コマンド行インタフェースのヘルプを参照してください。asadmin の使い方の詳細については、「コマンド行インタフェースの使用」を参照してください。

HTTP リスナーの削除

管理インタフェースを使って HTTP リスナーを削除するには、次の手順を実行します。

  1. 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
  2. 「HTTP リスナー」をクリックします。
  3. 削除する HTTP リスナーの横のチェックボックスをクリックします。
  4. 「削除」をクリックします。

コマンド行インタフェースを使って HTTP リスナーを削除する場合は、asadmin ユーティリティの delete-http-listener コマンドを使用します。構文は次のとおりです。

asadmin delete-http-listener ---user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] --instance instance httplistener_id

コマンド構文の詳細については、コマンド行インタフェースのヘルプを参照してください。asadmin の使い方の詳細については、「コマンド行インタフェースの使用」を参照してください。

仮想サーバーの作成と設定

HTTP リスナーの設定が完了すると、仮想サーバーを作成して使用できるようになります。

この節には次の項目があります。

仮想サーバーの作成

管理インタフェースを使って仮想サーバーを作成するには、次の手順に従います。

  1. 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
  2. 「仮想サーバー」をクリックします。
  3. 「新規」をクリックします。
  4. 必須フィールドとオプションフィールドに必要な情報を入力し、
  5. 「保存」をクリックします。

コマンド行インタフェースを使って仮想サーバーを作成する場合は、asadmin ユーティリティの create-virtual-server コマンドを使用します。構文は次のとおりです。

asadmin create-virtual-server --user username ---user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] [--instance instancename] --hosts hosts --mime mime_types_file [--httplisteners http-listeners] [--defaultwebmodule default_web_module] [--configfile config_file] [--defaultobj default_object] [--state state] [--acls acls] [--acceptlang accept_language] [--logfile logfile] [--property (name=value)[:name=value]*] virtual_server_id

コマンド構文の詳細については、コマンド行インタフェースのヘルプを参照してください。asadmin の使い方の詳細については、「コマンド行インタフェースの使用」を参照してください。

仮想サーバーを作成すると、次の設定情報を入力できるようになります。

必須設定

仮想サーバーの必須設定には、名前 (ID) と URL ホストの設定が含まれます。

また、MIME タイプのファイルも指定する必要があります。MIME タイプファイルには、ファイル拡張子とファイルタイプのマッピング情報が含まれています。たとえば、.cgi という拡張子を持つファイルを CGI ファイルとして処理するように指定できます。

仮想サーバーごとに個別の MIME タイプファイルを作成する必要はありません。必要な数の MIME タイプファイルを作成し、仮想サーバーに関連付けます。デフォルトの MIME タイプファイルは mime1、そのファイル名は mime.types になります。

MIME タイプファイルの詳細については、「MIME タイプの設定」を参照してください。

オプションの一般設定

必須フィールドのほかに、オプションフィールドも設定できます。

HTTP リスナー

HTTP リスナーは、仮想サーバーへの接続を処理します。リモートクライアントが仮想サーバーにアクセスできるようにするには、これを指定する必要があります。

ACL

仮想サーバーに適用される ACL (アクセス制御リスト) です。詳細は、『Sun ONE Application Server セキュリティ管理者ガイド』を参照してください。

使用可能な言語

クライアントが HTTP 1.1 を使ってサーバーにアクセスするときに、そのクライアントが使用可能な言語に関する情報が渡されることがあります。この言語情報を解析するように、サーバーを設定できます。

たとえば、日本語と英語でドキュメントを保存している場合に、使用可能な言語のヘッダー情報を解析するように設定できます。言語ヘッダーに日本語の使用が設定されているクライアントがサーバーにアクセスすると、そのクライアントは日本語バージョンのページを受信します。言語ヘッダーに英語の使用が設定されているクライアントがサーバーにアクセスすると、そのクライアントは英語バージョンのページを受信します。

複数の言語をサポートしない場合は、使用可能な言語のヘッダー情報を解析するべきではありません。

状態

ここで設定した状態は、仮想サーバーの状態です。仮想サーバーの状態は、アプリケーションサーバーインスタンスが有効であるかどうかに左右されません。このページで仮想サーバーの状態が「オン (On)」になっている場合、仮想サーバーは、アプリケーションサーバーインスタンスが「オン (On)」である場合に限り、要求を受け付けることができます。

これは、デフォルトのアプリケーションサーバーインスタンスのデフォルトの仮想サーバーの場合も同様です。アプリケーションサーバーインスタンスを無効にしても、デフォルトの仮想サーバーは「オン (On)」のままです。ただし、接続は受け付けられません。

有効な状態は、「オン (On)」、「オフ (Off)」、または「無効 (Disable)」です。「オン (On)」に設定した場合、仮想サーバーは接続を受け入れることができます。

アプリケーションサーバーインスタンスのデフォルトの仮想サーバーを無効にすることはできません。

ログファイル

ログファイル (サーバーログファイル) には、情報メッセージとエラーが記録されます。アクセスログファイルには、仮想サーバーへの HTTP アクセスが記録されます。

ドキュメントルート

ドキュメントルート (一次ドキュメントディレクトリ) は、仮想サーバーの全ファイルを格納してリモートクライアントに提供するための中心的なディレクトリです。詳細については、「ドキュメントルート」を参照してください。

Web アプリケーションの設定

Web アプリケーションは、サーブレット、JavaServer Pages、HTML ドキュメント、および、イメージファイルや圧縮アーカイブなどのデータを含むその他の Web リソースの集まりです。Web アプリケーションは、アーカイブ (WAR ファイル) にパッケージされている場合や、オープンディレクトリ構造に配備されている場合があります。

Sun ONE Application Server 7 は Servlet 2.3 API 仕様をサポートしています。この仕様では、サーブレットや JSP を Web アプリケーションに組み込むことができます。また、Sun ONE Application Server 7 は、J2EE アプリケーションコンポーネントではない SHTML と CGI もサポートしています。

仮想サーバーを作成するときに、仮想サーバーのデフォルトの Web モジュールを指定します。このデフォルトの Web モジュールは、仮想サーバー上に配備されたその他の Web モジュールが解決できないすべての要求に応答します。デフォルトの Web モジュールを指定しない場合は、コンテキストルートが空の Web モジュールが使われます。コンテキストルートが空の Web モジュールが存在しない場合は、システムのデフォルトの Web モジュールが作成され、これが使用されます。

Web アプリケーションを配備するときに、仮想サーバーを指定します。Web アプリケーションを配備すると、利用可能な Web モジュールのリストにこのアプリケーションが表示され、仮想サーバーのデフォルトの Web モジュールとして選択できるようになります。Web モジュールを仮想サーバーのデフォルト Web モジュールとして指定すると、その Web アプリケーションの仮想サーバーのリストにこの仮想サーバーが追加されます。

CGI の設定

仮想サーバーの作成時に設定した CGI 設定は、CGI がどのユーザーまたはグループとして実行されるか、CGI の実行前にどのディレクトリに変更するか (chroot)、および chroot の後にどのディレクトリに変更するかに影響します。

UNIX 環境では、nice も設定できます。nice は、サーバーを基準として CGI プログラムの優先度を決定する増分値です。通常、サーバーは nice 値 0 で動作しており、CGI の nice 増分値は 0 から 19 の範囲で指定します。0 を指定すると CGI プログラムはサーバーと同じ優先度で動作し、19 を指定すると CGI プログラムはサーバーよりもかなり低い優先度で動作します。

HTTP のサービス品質の設定

サービス品質とは、ユーザーが仮想サーバーに設定するパフォーマンス制限のことです。たとえば、ISP は、許可する帯域幅に応じて仮想サーバーの課金額を変えたいことがあります。これらの設定は、強制することも (つまり、特定の帯域幅に許可される最大接続数を指定)、強制しないこともできます。強制しない設定では、制限を超えるとログファイルにメッセージが記録されます。詳細については、「CLI によるトランザクションサービスの管理」を参照してください。

管理インタフェースを使ってこれらの設定を変更できるだけでなく、asadmin ユーティリティを使ってコマンド行ユーティリティから変更することもできます。コマンド行インタフェースの asadmin ユーティリティを使ってサービス品質を設定するときは、次のコマンドを使います。

  • create-http-qos
  • delete-http-qos

これらのコマンドの構文は次のとおりです。

asadmin create-http-qos --user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] [--virtualserver virtual_server_id] [--bwlimit bandwidth_limit] [--enforcebwlimit enforce_bandwidth_limit] [--connlimit connection_limit] [--enforceconnlimit enforce_connection_limit] instance_name

asadmin delete-http-qos --user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] [--virtualserver virtual_server_id] instance_name

仮想サーバーを指定してこれらのコマンドを実行すると、その仮想サーバーのサービス品質情報が作成または削除されます。仮想サーバーを指定しない場合は、コマンドはサーバーインスタンスに適用されます。

コマンド構文の詳細については、コマンド行インタフェースのヘルプを参照してください。asadmin の使い方の詳細については、「コマンド行インタフェースの使用」を参照してください。

仮想サーバーの設定の編集

仮想サーバーのセットアップ内容を編集できます。仮想サーバーの設定の編集方法については、次の項目を参照してください。

管理インタフェースによる一般設定の編集

仮想サーバーの基本設定は、仮想サーバーの作成時に行います。変更を加えるには、次の手順に従います。

  1. 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
  2. 「仮想サーバー」を開きます。
  3. 編集する仮想サーバーをクリックします。
  4. 必要な変更を加えます。
  5. サービス品質の設定、ACL の追加、コンテンツ関連の設定 (ドキュメントルートの設定、言語ヘッダーの受け入れなど)、CGI 関連の設定 (user、group、nice、chroot の設定など)、およびデフォルトの Web モジュールなどの変更が可能です。

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

これらの設定の詳細については、「仮想サーバーの作成と設定」を参照してください。オンラインヘルプも参考になります。

コマンド行インタフェースによる一般設定の編集

コマンド行インタフェースで asadmin ユーティリティを使って これらの設定を編集することもできます。現在の設定を取得するときは get コマンド、新しい値を設定するときは set コマンドを使用します。

仮想サーバーのすべての属性を取得するには、次の構文を使います。

asadmin> get instance_name.virtual-server.vserver_id.*

次に例を示します。

asadmin> get server1.virtual-server.vs1.*

アプリケーションサーバーインスタンス server1 のすべての属性を取得するときは、次の構文を使います。

asadmin> get server1.virtual-server.server1.*

たとえば、受け入れる言語ヘッダーの属性に値を設定するときは、次の構文を使います。

asadmin> set server1.virtual-server.server1.virtualserver.acceptLanguage=false



「一般」ページのすべてのフィールドの値は、コマンド行インタフェースを使って設定できます。ただし、「CGI」タブのように、このページのその他のタブのフィールド値をコマンド行インタフェースから設定することはできません。



コマンド構文の詳細については、コマンド行インタフェースのヘルプを参照してください。asadmin の使い方の詳細については、「コマンド行インタフェースの使用」を参照してください。

CGI 設定の編集

CGI 設定の編集については、『Sun ONE Application Server Web アプリケーション開発者ガイド』を参照してください。

ドキュメント処理の設定、ドキュメントディレクトリの設定、および HTTP/HTML 設定の編集

これらの設定の変更については、「仮想サーバーコンテンツの管理」を参照してください。

仮想サーバーの削除

仮想サーバーを削除するには、次の手順に従います。

  1. 管理インタフェースの左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
  2. 「仮想サーバー」をクリックします。
  3. 削除する仮想サーバーの横のチェックボックスをクリックします。
  4. 「削除」をクリックします。
  5. 管理インタフェースを使ってすべての仮想サーバーを削除することはできません。

コマンド行インタフェースを使って仮想サーバーを削除する場合は、asadmin ユーティリティの delete-virtual-server コマンドを使用します。

構文は次のとおりです。

asadmin delete-virtual-server --user username [--password password] [--host hostname] [--port adminport] [--secure | -s] [--passwordfile file_name] --instance instance virtualserver_id

コマンド構文の詳細については、コマンド行インタフェースのヘルプを参照してください。asadmin の使い方の詳細については、「コマンド行インタフェースの使用」を参照してください。

仮想サーバーの配備

Sun ONE Application Server の仮想サーバーのアーキテクチャはとても柔軟です。アプリケーションサーバーインスタンスには、安全である、または安全でない HTTP リスナーをいくつでも持たせることができます。また、これらの HTTP リスナーには、仮想サーバーをいくつでも関連づけることができます。さらに、IP アドレスベースの仮想サーバーと URL ホストベースの仮想サーバーの両方を利用できます。

各仮想サーバーには、専用の ACL、専用の mime.types ファイル、専用の Java Web アプリケーションを持たせることができます (必須ではありません)。

この設計により、さまざまな種類のアプリケーションに合わせてサーバーを柔軟に設定できます。次の例は、Sun ONE Application Server で利用できる設定の一部を示しています。

例 1: デフォルト設定

デフォルト設定では、アプリケーションサーバーの数は 1 つです。このアプリケーションサーバーインスタンスには、マシンが設定されている IP アドレスのポート 80、1024、または指定したポートで待機する 1 つの HTTP リスナーがあります。

ローカルネットワーク側のメカニズムによって、マシンが設定されている各アドレスと名前のマッピングが行われます。次の例では、アドレス 127.0.0.1 のループバックインタフェース (ネットワークカードなしでも存在できるインタフェース)、およびアドレス 10.0.0.1 のイーサネットインタフェースという 2 つのインタフェースがあります。

example.com という名前は DNS を経由して 10.0.0.1 にマップされます。HTTP リスナーは、マシンに設定されているすべてのアドレスについて、ポート 80 で待機するように設定されます (0.0.0:80)。

デフォルトの設定では IP アドレスベースの仮想サーバーは使われないため、デフォルトの HTTP リスナーだけが使われます。すべての接続は、仮想サーバー server1 を経由します。

   デフォルト設定
この図は、アプリケーションサーバーインスタンスのデフォルト仮想サーバーの設定を示しています。HTTP リスナーは 1 つだけ、仮想サーバーも 1 つです。

この設定では、次の各要素への接続は仮想サーバー VS1 によって処理されます。

  • http://127.0.0.1/ (example.com から呼び出し)
  • http://localhost/ (example.com から呼び出し)
  • http://example.com/
  • http://10.0.0.1/

旧来の HTTP サーバーを利用する場合は、この設定を利用します。仮想サーバーや HTTP リスナーを追加する必要はありません。サーバーの設定を変更するときは、server1 の設定を変更します。

例 2: セキュリティの保護されたサーバー

デフォルトの設定で SSL を使うには、HTTP リスナーをセキュリティの保護されたモードに変更するだけです。

また、0.0.0.0:443 に安全な HTTP リスナーを追加し、server1 を新しい HTTP リスナーに関連づけます。これにより、仮想サーバーにはセキュリティの保護された HTTP リスナーと、セキュリティ保護されていない HTTP リスナーが用意されます。サーバーは、同じコンテンツを SSL を使って、または使わずに提供できるようになります。つまり、http://example.com/ と https://example.com/ は同じコンテンツを配信します。

   安全なサーバー
この図は、2 つの HTTP リスナー (一方は安全で、もう一方は安全でない) と 1 つの仮想サーバーによる、サーバーインスタンスの安全な設定を示しています。

HTTP リスナーには SSL パラメータが設定されています。

例 3: イントラネットのホスティング

Sun ONE Application Server のより複雑な設定には、イントラネットに配備するために複数の仮想サーバーをサーバーがホスティングする設定があります。たとえば、従業員が別の従業員の電話番号を検索するサイト、社内の地図を参照するサイト、情報サービス部に送った要求の状態を追跡するサイトという 3 つの社内サイトがあると仮定します。この例では、従来は phone.example.com、maps.example.com、is.example.com という名前がマップされた 3 つの異なるマシンがそれぞれのサイトをホスティングしていました。

ハードウェアと管理のオーバーヘッドを削減するために、machine example.com というマシンで稼働する 1 つのアプリケーションサーバーにすべてのサイトを統合します。これは、URL ホストベースまたは IP アドレスベースの仮想サーバーを使って設定できます。どちらを利用した場合にも、利点と欠点があります。

   URL ホストベースの仮想サーバーを使ったイントラネットのホスティング
この図は、URL ホストベースの仮想サーバーを示しています。

URL ホストベースの仮想サーバーは設定が容易ですが、次のような欠点があります。

  • この設定で SSL をサポートするには、ワイルドカード証明書を使った標準以外の設定が必要となる。詳細は、『Sun ONE Application Server セキュリティ管理者ガイド』を参照
  • URL ホストベースの仮想サーバーは、従来の HTTP クライアントでは機能しない

IP アドレスベースの仮想サーバーには、次のような利点があります。

  • HTTP/1.1 Host ヘッダーをサポートしていない従来のクライアントでも機能する
  • 簡単に SSL をサポートできる

欠点は次のとおりです。

  • ホストコンピュータの設定 (現実のまたは仮想のネットワークインタフェースの設定) を変更する必要がある
  • 数千の仮想サーバーを使った設定に対応するだけのスケーラビリティがない

どちらの設定でも、3 つの名前をアドレスにマップする設定が必要です。IP アドレスベースの設定では、それぞれの名前は異なるアドレスにマップされます。ホストマシンでは、すべてのアドレスとの接続を受信するように設定する必要があります。URL ホストベースの設定では、ホストマシンに固有の 1 つのアドレスにすべての名前をマップできます。

   IP アドレスベースの仮想サーバーを使ったイントラネットのホスティング
この図は、IP アドレスベースの仮想サーバーを示しています。

例 4: マスホスティング

マスホスティングは、多数の低トラフィック仮想サーバーが有効な設定です。たとえば、低トラフィックの多数の個人ホームページをホスティングする ISP などがこれに該当します。この仮想サーバーは、通常は URL ホストベースです。

   マスホスティング
この図は、1 つの HTTP リスナーと多数の URL ホストベースの仮想サーバーによるマスホスティングを示しています。

デフォルトの仮想サーバー server1 は依然として存在します。


前へ      目次      索引      次へ     
Copyright 2003 Sun Microsystems, Inc. All rights reserved.