Sun ONE ロゴ      前へ      目次      索引      次へ     

Sun ONE Web Server 6.1 管理者ガイド

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

この章では、Sun ONE Web Server を使用して仮想サーバーの設定および管理を行う方法を説明します。

この章では、次の項目について説明します。


仮想サーバーの概要

仮想サーバーを使用すると、インストールされた 1 つのサーバーで、複数の会社または個人に対して、ドメイン名、IP アドレス、およびサーバー監視機能を提供できます。仮想サーバーを使用してハードウェアと基本的な Web サーバーの維持管理を提供しますが、ユーザーからは、それぞれが専用の Web サーバーを所有しているように見えます。


仮想サーバーを使用しない場合でも、Web サーバーインスタンスのコンテンツ、プログラム、およびその他の機能を設定するときはクラスマネージャの項目を使用します。Web サーバーをインストールすると、そのインスタンスのデフォルトの仮想サーバーが作成されます。仮想サーバーのユーザーインタフェースを使用して、デフォルトの仮想サーバーのコンテンツおよびサービスを管理できます。


仮想サーバーを設定するには、次の項目を設定する必要があります。

仮想サーバーの設定は、server.xml ファイルに保存されます。このファイルは server_root/server_ID/config ディレクトリにあります。仮想サーバーを使用するのにこのファイルを編集する必要はありませんが、編集も可能です。このファイルと編集方法についてさらに詳細を知りたい場合は、『Sun ONE Web Server 6.1 Administrator's Configuration File Reference』を参照してください。

この節では、次の内容について説明します。

複数のサーバーインスタンス

これまでのリリースの Sun ONE Web Server では、仮想サーバーごとに固有の設定情報を柔軟に設定することができませんでした。サーバーごとに個別の設定情報を簡単に設定する方法として、ほとんどの場合、ユーザーは個別のサーバーインスタンスを作成していました。Sun ONE Web Server のバージョン 6.0 から、仮想サーバークラスごとに個別に情報を設定できるようになりました。複数のサーバーインスタンスを使用することは現在も可能ですが、個別の設定情報を持つサーバーを多数使用する場合は、仮想サーバーの使用をお勧めします。

仮想サーバークラス

仮想サーバーはクラスにグループ分けされます。クラスを使用すると、類似するサーバーを一度に設定できるので、各サーバーを個別に設定する必要がありません。同じクラスに含まれるすべての仮想サーバーは同じ基本設定情報を共有しますが、仮想サーバーごとに変数を設定して設定を変更することもできます。仮想サーバー間で設定情報を共有させたくない場合は、各仮想サーバークラスに 1 つずつ仮想サーバーを作成します。一方、複数の仮想サーバーが類似するプロパティを持つ場合は、1 つのクラスにグループ化して一緒に設定することができます。

たとえば、インターネットサービスプロバイダ (Internet Service Provider、ISP) で、さまざまなレベルのホスティングサービスを各顧客に異なる料金で提供する場合は、顧客に対して複数の仮想サーバークラスを設定できます。あるクラスの仮想サーバーでは Java サーブレットおよび JSP を使用可能にし、料金の低い別のクラスの仮想サーバーでは Java サーブレットおよび JSP を使用不可にすることができます。

仮想サーバーのクラスを作成するには、そのクラスに名前を付けて、ドキュメントルートを設定します。デフォルトでは、そのドキュメントルートがそのクラスに属するすべての仮想サーバーのドキュメントルートになります。$id 変数を使用して、クラス内の各仮想サーバーがそのクラスのドキュメントルート内に個別のドキュメントルートを持つように設定できます。詳細は「ドキュメントルート」を参照してください。

仮想サーバークラスを作成したあと、そのクラスにサービスを関連付けます。仮想サーバークラスでは、次の種類のサービスを有効にするか設定することができます。

obj.conf ファイル

同じクラス内のすべての仮想サーバーは、1 つの obj.conf ファイルを共有します。このファイルには、その仮想サーバークラスに関する情報が格納されます。情報の一部は変数として格納され、各仮想サーバーの稼動時に、それぞれのサーバーに固有の変数値が代入されます。

obj.conf ファイルと変数については、『NSAPI Programmer's Guide』を参照してください。ユーザーインタフェースでの変数の使用法については、「変数の使用法」を参照してください。

クラスに属する仮想サーバー

同一のクラスに属する仮想サーバーを、そのクラスのメンバーと呼びます。仮想サーバーの設定項目には、クラス内のすべての仮想サーバーに対して設定する項目と、個別に設定する項目があります。仮想サーバーの設定項目は、クラスマネージャの「Virtual Servers」タブで設定します。詳細は、第 14 章「仮想サーバーの作成と設定」を参照してください。

デフォルトのクラス

Sun ONE Web Server のインストール時に、defaultclass というクラスが自動的に作成されます。このクラスには、デフォルトでそのサーバーインスタンス用の仮想サーバーメンバーが 1 つ作成されます。デフォルトのクラスにさらに仮想サーバーを追加できますが、デフォルトの仮想サーバーをクラスから削除することはできません。また、デフォルトのクラスも削除できません。

待機ソケット

サーバーとクライアントの間の接続は待機ソケットを通して確立されます。作成する各待機ソケットには、IP アドレス、ポート番号、サーバー名、デフォルト仮想サーバーが設定されます。1 台のマシンの特定のポートで設定済み IP アドレスのすべてを待機する待機ソケットを設定する場合は、IP アドレスとして 0.0.0.0、any、ANY、または INADDR_ANY を使用します。

Sun ONE Web Server をインストールすると、ls1 という待機ソケットが自動的に作成されます。この待機ソケットには、0.0.0.0 の IP アドレス と、インストール時に HTTP サーバーのポート番号として指定したポート番号 (デフォルトでは 80) が割り当てられます。デフォルトの待機ソケットは削除できません。仮想サーバーを使用しない場合は、この待機ソケットだけで十分です。仮想サーバーを使用する場合は、各仮想サーバー用に複数の待機ソケットを作成する必要がある場合があります。

待機ソケットは IP アドレスとポート番号の組み合わせであるため、複数の待機ソケットを作成する場合、IP アドレスが同じでもポート番号が異なっていればよく、また、IP アドレスが異なっていればポート番号が同じでもかまいません。たとえば、1.1.1.1:81 と 1.1.1.1:82 の待機ソケットを作成できます (1.1.1.1 はアドレス、81 と 82 はポート番号を示す)。また、1.1.1.1:81 と 1.2.3.4:81 のような待機ソケットも作成できます。

さらに、待機ソケットの受け入れスレッドの数を指定します。受け入れスレッドは、接続を待機するスレッドです。このスレッドは、接続を受け入れて、キューに入れます。キューの接続はこのあと、ワーカースレッドに引き継がれます。新しい要求が来たときに常に使用可能な受け入れスレッドが存在するように十分な受け入れスレッド数を設定するのが理想的ですが、システムに負担がかかりすぎない程度の数に抑える必要があります。デフォルトは 1 です。システムの CPU 1 つ当たり 1 つの受け入れスレッドを設定することをお勧めします。パフォーマンスに問題がある場合は、この値を調節できます。

仮想サーバー

仮想サーバーを作成するには、まず、その仮想サーバーをどのクラスに入れるかを決める必要があります。次に、作成する仮想サーバーの種類を決める必要があります。仮想サーバーを作成するには、仮想サーバー ID、および 1 つ以上の URL ホストを指定する必要があります。

この節では、次の内容について説明します。

仮想サーバーの種類

Sun ONE Web Server のリリース 6.0 の前までは、ハードウェアとソフトウェアの 2 種類の仮想サーバーがありました。ハードウェア仮想サーバーには、固有の IP アドレスが割り当てられていました。ソフトウェア仮想サーバーには、固有の IP アドレスはなく、代わりに固有の URL ホストが割り当てられていました。

Sun ONE Web Server 6.0 および Sun ONE Web Server 6.1 では、この概念は正確でなくなりました。すべての仮想サーバーに URL ホストが割り当てられます。ただし、待機ソケット基づいて、仮想サーバーに IP アドレスが割り当てられる場合もあります。

新しい要求を受け取ると、サーバーは IP アドレスまたは Host ヘッダーの値に基づいて、受け取った要求をどの仮想サーバーに送るかを決定します。サーバーは、最初に IP アドレスを評価します。詳細は「要求を処理する仮想サーバーの選択」を参照してください。

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

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

IP アドレスベースの仮想サーバーを作成するときは、通常は特定の IP アドレスで待機する待機ソケットを作成します。待機ソケットのデフォルト仮想サーバーは、IP アドレスベースの仮想サーバーです。仮想サーバーを配備する方法については、「仮想サーバーの配備」を参照してください。

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

URL ホストベースの仮想サーバーを設定するには、各仮想サーバーに固有の URL ホストを割り当てます。サーバーは、Host 要求ヘッダーの内容によって、その要求を正しい仮想サーバーに振り向けます。

たとえば、aaa、bbb、および ccc という顧客の仮想サーバーを設定し、それぞれの顧客が個別のドメイン名を持てるようにするには、まず、各顧客の URL (www.aaa.comwww.bbb.comwww.ccc.com) を、使用する待機ソケットの IP アドレスへ名前解決して認識できるように DNS を設定します。次に、各仮想サーバーの URL ホストを正しく設定します (www.aaa.comなど)。

URL ホストベースの仮想サーバーは、Host 要求ヘッダーを使用してユーザーに正しいページを表示するため、クライアントソフトウェアによっては、この処理ができない場合もあります。HTTP Host ヘッダーをサポートしていないクライアントソフトウェアでは、この処理ができません。そのようなクライアントは、待機ソケットのデフォルトの仮想サーバーを受け取ります。

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

URL ホストベースの仮想サーバーは、Host 要求ヘッダーを使用して選択されます。エンドユーザーのブラウザが Host ヘッダーを送信しない場合、または、指定された Host ヘッダーをサーバーが見つけられない場合は、デフォルトの仮想サーバーがその要求を処理します。

デフォルトの仮想サーバーは、待機ソケットによって設定されます。待機ソケットの作成時に、デフォルトの仮想サーバーを指定します。デフォルトの仮想サーバーはいつでも変更できます。

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

サーバーで要求を処理するには、待機ソケットを介して要求を受け入れてから、適切な仮想サーバーにその要求を送信する必要があります。

その後、仮想サーバーは次のように選択されます。

SSL 待機ソケットに設定されている仮想サーバーは、サーバーの起動時に、その URL ホストが証明書のサブジェクトパターンと照合され、一致しない場合は、警告が生成されてエラーログに書き込まれます。

仮想サーバーが決定されると、サーバーは、その仮想サーバーが属する仮想サーバークラスの obj.conf ファイルを実行します。サーバーが obj.conf で実行する指令を決定する方法については、『Sun ONE Web Server 6.1 NSAPI Programmer's Guide』を参照してください。

ドキュメントルート

プライマリドキュメントディレクトリまたはドキュメントルートは、仮想サーバーの全ファイルを格納してリモートクライアントに提供するための中央ディレクトリです。

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

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

Sun ONE Web Server のインストール時に、Web サーバーインスタンスのドキュメントルートを指定します。これが、デフォルトのクラスのドキュメントルートになります。クラスレベルで、ドキュメントルート用のディレクトリを変更できます。また、個々の仮想サーバーレベルでクラスレベルのディレクトリを無効にすることもできます。

クラスを追加する場合、ドキュメントディレクトリも指定する必要があります。このディレクトリは絶対パスで指定します。ただし、絶対パスをそのままで入力すると、そのクラスに属するすべての仮想サーバーのドキュメントルートが同じディレクトリにデフォルト設定されます。ドキュメントルートの絶対パスの最後に $id 変数を付けると、仮想サーバーごとに、class_doc_root/virtual_server_ID というドキュメントルートがデフォルト設定されます。たとえば、クラスのドキュメントディレクトリが /sun/servers/docs/$id の場合、そのクラスに属する仮想サーバー vs1 のデフォルトのドキュメントディレクトリは、/sun/servers/docs/vs1 になります。

変数については、「変数の使用法」を参照してください。

クラスレベルのデフォルトのドキュメントディレクトリを、個別の仮想サーバーレベルでは無効にすることもできます。

ログファイル

新しい仮想サーバーを作成すると、デフォルトでは、ログファイルはサーバーインスタンスと同じログファイルが使用されます。ほとんどの場合、仮想サーバーごとに専用のログファイルを使用する必要があります。そのためには、各仮想サーバーのログパスを変更します。

詳細は、「仮想サーバーのログの設定」を参照してください。

前のリリースから仮想サーバーを移行する

バージョン 4.1 の iPlanet Web Server を使用していた場合は、移行ツールを使用して現在のバージョンに移行できます。詳細は、『インストールおよび移行ガイド』を参照してください。


仮想サーバーで Sun ONE Web Server の機能を使用する

Sun ONE Web Server には、SSL やアクセス制御など、仮想サーバーで使用できる多くの機能があります。これらの機能の多くは、すべてのサーバー、1 つのサーバーインスタンス、仮想サーバークラス、または個別の仮想サーバーの設定に関係します。次の節では、これらの機能について説明し、詳細情報の参照先に関する情報を提供します。

この節では、次の内容について説明します。

仮想サーバーで SSL を使用する

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

唯一の例外は、URL ホストベースの仮想サーバーのすべてが、「ワイルドカード証明書」を使用して、同一のサーバー証明書など、同じ SSL 設定を持つ場合です。詳細は、第 6 章「証明書と鍵の使用」を参照してください。

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

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

Sun ONE Web Server や仮想サーバーでセキュリティを設定する方法および使用する方法については、第 6 章「証明書と鍵の使用」を参照してください。仮想サーバーでの SSL の設定例は、「例 2 : セキュリティ保護されたサーバー」を参照してください。

仮想サーバーでアクセス制御を使用する

仮想サーバーでは、仮想サーバー単位でアクセス制御を設定できます。さらに、LDAP データベースを使用して、各仮想サーバーごとにユーザーおよびグループを認証できるように設定することもできます。詳細は、 「仮想サーバーへのアクセス制御」を参照してください。

仮想サーバーで CGI を使用する

仮想サーバーで CGI を使用できます。アクセスおよびセキュリティに関して設定できる項目が多数あります。

CGI の設定および使用法については、「CGI プログラムのインストール」を参照してください。

仮想サーバーで設定スタイルを使用する

設定スタイルは、さまざまな仮想サーバーが維持管理する特定のファイルやディレクトリに対して、一連のオプションを簡単に適用する方法です。設定スタイルについては、「設定スタイルの適用」を参照してください。


仮想サーバーのユーザーインタフェースの使用法

仮想サーバーの作成および編集には、ユーザーインタフェースまたはコマンド行ユーティリティを使用できます。

仮想サーバーを管理するためのユーザーインタフェースは、次の 3 つの部分で構成されます。

また、個々の仮想サーバーを所有するエンドユーザー用のユーザーインタフェースも使用できます。詳細は、「個々の仮想サーバーをユーザーが監視できるようにする」を参照してください。

この節では、次の内容について説明します。

クラスマネージャ

クラスマネージャにアクセスするには、次の手順に従います。

  1. サーバーマネージャから、「Virtual Server Class」タブをクリックします。
  2. 「Manage Classes」をクリックします。
  3. クラスを選択して、「Manage」をクリックします。

サーバーのツリービューでクラス名をクリックする、またはサーバーマネージャの右上隅にある「Class Manager」ボタンをクリックする方法もあります。

仮想サーバーマネージャ

仮想サーバーマネージャにアクセスするには、次の手順に従います。

  1. クラスマネージャから「Virtual Server」タブをクリックします。
  2. 「Manage Virtual Servers」をクリックします。
  3. 仮想サーバーを選択して、「Manage」をクリックします。

サーバーのツリービューで仮想サーバー名をクリックする方法もあります。

コマンド行ユーティリティの HttpServerAdmin を使用して、ユーザーインタフェースを使用する場合と同じ仮想サーバー関連操作を実行できます。コマンド行ユーティリティ HttpServerAdmin については、「HttpServerAdmin (仮想サーバーの管理)」を参照してください。

変数の使用法

クラス内の仮想サーバーごとに共通の値を設定する変数を使用すると、それぞれの値を個別に指定する必要がありません。変数は、obj.conf ファイルに定義されます。独自の変数を定義できますが、ユーザーインタフェースでは独自に定義した変数は認識されません。ユーザーインタフェースでもっとも便利な変数は、仮想サーバーの ID を表す $id 変数です。この変数を入力すると、サーバーは、その値に各仮想サーバーの ID を代入します。

$accesslog (各仮想サーバーのアクセスログのパス) や $docroot (各仮想サーバーのドキュメントルートのパス) など、いくつかの変数がありますが、フィールドに入力する必要があるのは $id だけです。

変数については、『Sun ONE Web Server 6.1 NSAPI Programmer's Guide』を参照してください。

ダイナミック再設定

ダイナミック再設定を利用すると、稼動中の Web サーバーの設定を変更して、Web サーバーを停止したり再起動したりすることなく、変更を適用することができます。server.xml およびその関連ファイル内の設定に関する設定および属性のすべてを、サーバーを再起動することなくダイナミックに変更できます。仮想サーバーのユーザーインタフェースで加えたすべての変更が、サーバーを再起動することなく適用されます。変更後に、再設定スクリプトまたはユーザーインタフェースを使用して、サーバーをダイナミックに再設定することができます。

UNIX プラットフォームでは、ダイナミック再設定のスクリプトは、各インスタンスのディレクトリにある「reconfig」というシェルスクリプトです。このスクリプトにはコマンド行引数はありません。サーバーインスタンスのディレクトリで「reconfig」と入力するだけで、この再設定スクリプトを実行できます。

Windows では、ダイナミック再設定のスクリプトは、各インスタンスのディレクトリにある「reconfig.bat」というバッチファイルです。コマンド行引数はありません。サーバーインスタンスのディレクトリで「reconfig」または「reconfig.bat」と入力するだけで、この再設定スクリプトを実行できます。

このスクリプトを実行すると、ユーザーインタフェースと同様にサーバーのダイナミックな再設定が開始され、再設定に関連するサーバーメッセージが表示されます。

ダイナミック再設定の画面にアクセスするには、「Server Manager」、「Class Manager」、および「Virtual Server Manager」の各ページの右上隅にある「Apply」リンクをクリックし、次に、「Apply Changes」ページの「Load Configuration Files」ボタンをクリックします。新しい設定情報のインストールの際にエラーが発生した場合は、それまでの設定情報が復元されます。


仮想サーバーの設定

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

  1. 待機ソケットを作成します。
  2. 仮想サーバークラスを作成します。
  3. クラスのサービスを設定します。
  4. 仮想サーバークラス内の仮想サーバーを作成します。
  5. 仮想サーバーを設定します。

待機ソケットを作成する場合、デフォルトの仮想サーバーのフィールドには、既存の仮想サーバーを入力する必要があります。サーバーのインストール時に作成された仮想サーバーをデフォルトの仮想サーバーとして使用し、追加の仮想サーバーを作成したあとで、必要に応じて、デフォルトの仮想サーバーを変更することができます。

待機ソケットの作成

待機ソケットを作成するには、次の手順に従います。

  1. サーバーマネージャから、「Preferences」タブをクリックします。
  2. 「Add Listen Socket」をクリックします。
  3. 各フィールドに必要事項を入力します。
  4. 待機ソケットのポート番号と IP アドレスは、他と重複しない組み合わせにする必要があります。IPV4 または IPV6 のアドレスを使用できます。IP アドレスベースの仮想サーバーの待機ソケットを作成する場合、IP アドレスは、0.0.0.0、ANY、any、または INADDR_ANY にする必要があります。これにより、この待機ソケットは、そのポートですべての IP アドレスを待機します。

    この待機ソケットでは、セキュリティ機能 (SSL) を使用可能にすることもできます。

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

  5. 「OK」をクリックします。

仮想サーバークラスの作成

仮想サーバークラスを作成するには、次の手順に従います。

  1. サーバーマネージャから、「Virtual Server Class」タブをクリックします。
  2. 「Add Class」をクリックします。
  3. クラスに名前を付けます。
  4. そのクラスのドキュメントルートを入力します。
  5. これは、既存のディレクトリである必要があります。このクラスのすべての仮想サーバーでは、特に指定しない限り、この絶対パスのドキュメントルートが使用されます。パスの最後に /$id を付けると、そのクラスのドキュメントルートパス内に、その仮想サーバー ID の名前が付けられたドキュメントルートフォルダが自動的に作成されます。

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

仮想サーバーのクラスを作成したら、そのクラスに関連付けるサービスを選択します。詳細は、「コンテンツ管理」を参照してください。

仮想サーバークラスの編集または削除

仮想サーバークラスの設定を編集するには、次の手順に従います。

  1. サーバーマネージャから、「Virtual Server Class」タブをクリックします。
  2. 「Edit Classes」をクリックします。
  3. 目的のクラスの横にあるプルダウンリストから、「Edit」または「Delete」を選択します。
  4. デフォルトのクラスは削除できません。

  5. クラスのデフォルトのドキュメントルートの絶対パスを変更するには、「Document Root」フィールドを使用します。
  6. このクラスの仮想サーバーのドキュメントルートは、デフォルトでは、このディレクトリ内に作成されます。

  7. 仮想サーバーのこのクラスが、Accept Language ヘッダーの解析を使用するように設定するときは、「Accept Language」フィールドに「On」を指定します。
  8. デフォルトは、「Off」です。

  9. クラスに関連付けられている CGI のデフォルト設定を変更する場合は、「Advanced」をクリックします。
  10. CGI のデフォルト設定を示すウィンドウが表示されます。必要なフィールドを編集し、「OK」をクリックして「Edit Classes」ウィンドウに戻ります。「Reset」ボタンをクリックすると、変更が元に戻されます。

  11. 「OK」をクリックします。これで、クラスが変更または削除されます。

仮想サーバークラスと関連付けるサービスの指定

仮想サーバークラス間の違いを示す特性に、それぞれの仮想サーバークラスで使用できるサービスの違いがあります。たとえば、CGI を使用できる仮想サーバークラスと、使用できない仮想サーバークラスを設定できます。サービスの設定方法については、「コンテンツ管理」を参照してください。

仮想サーバーの作成

仮想サーバークラスの設定が完了したら、仮想サーバーを作成できます。仮想サーバーは、仮想サーバークラスのメンバーであるため、クラスマネージャで作成します。

詳細は、「仮想サーバーの作成」を参照してください。

仮想サーバーと関連付ける設定の指定

クラスの設定を仮想サーバーレベルでは無効にできます。また、設定を追加することもできます。これらの設定は、クラスマネージャで行います。

詳細は、「仮想サーバーの作成」を参照してください。


個々の仮想サーバーをユーザーが監視できるようにする

個々の仮想サーバーを管理するための特別なユーザーインタフェースがあります。これを利用すると、各仮想サーバーの管理者は、その仮想サーバーの設定を確認したり、アクセスログやエラーログを表示することができます。たとえば、3 つの部門用に 3 つの仮想サーバーを持つイントラネットの場合、それぞれの部門で、設定およびログファイルを個別に表示できます。

セキュリティ上の理由により、この管理ユーザーインタフェースは、管理サーバーポートまたは Web サーバーインスタンスポートとは別のポートにあります。

このユーザーインタフェースは、管理サーバー内の仮想サーバーで稼動します。この仮想サーバーは、デフォルトで設定され、useradmin という名前が付けられます。ユーザーが管理サーバーポートへのアクセス権を持たなくても仮想サーバーの管理ユーザーインタフェースにアクセスできるように、管理サーバーが稼動する待機ソケットとは別の待機ソケットを仮想サーバーに設定する必要があります。

次の図は、各仮想サーバーの管理者が、useradmin 仮想サーバーから各自の仮想サーバーの情報にアクセスする様子を示しています。

仮想サーバーを起動するときに、管理サーバーの /config/server.xml ファイルで特定の設定を編集した場合は、ユーザーは次の URL から管理することができます。

server_name:port/user-app/server_instance/virtual_server_ID

その例を次に示します。

sun:9999/user-app/sun/vs2

サーバーインスタンスには、サーバーインスタンス名の「https」の部分は指定しません。

仮想サーバーの ID を特定するには、サーバーインスタンスの server.xml ファイルを調べます。

次の図は、エンドユーザーに表示されるユーザーインタフェースを示します。

Sun ONE Web Server 6.1 をインストールすると、次の項目を作成するための特定の行が server_root/https-admserv/config/server.xml ファイル内でコメントになっています。

これらの項目のコメントアウトを解消するだけで、useradmin を設定できます。

この機能を使用できるようにサーバーを設定するには、次の手順に従います。

  1. 管理サーバーが使用するポートとは別のポートを使用する新しい待機ソケットを作成します。
  2. たとえば、管理サーバーがポート 8888 で稼動する場合、新しく作成する待機ソケットには、別のポート番号を指定する必要があります。別の待機ソケットを使用することで、管理サーバーを保護できます。

    セキュリティ上の理由により、ユーザーインタフェースからこの待機ソケットを追加することはできません。その代わりに、管理サーバーの server.xml ファイルに待機ソケットを追加します。

  3. 管理サーバーの server.xml ファイルを開きます。このファイルは、server_root/https-admserv/config/server.xml にあります。
  4. LSVSCLASSVS 要素のデフォルト値を含むコメント行で、コメントアウトを解除します。その例を次に示します。
  5. <!--

    <LS id="ls2" port="9999" servername="plaza" defaultvs="useradmin"/>

    -->

    <!--

    <VSCLASS id="userclass" objectfile="userclass.obj.conf">

       <VS id="useradmin" connections="ls2" mime="mime1" aclids="acl1" urlhosts="plaza">

            <PROPERTY name="docroot" value="/export1/wsinst/docs"/>

            <USERDB id="default"/>

            <WEBAPP uri="/user-app" path="/export1/wsinst/bin/https/webapps/user-app"/>

       </VS>

    </VSCLASS>

    -->

    これにより、セキュリティ上の理由から独立したポートに作成されている useradmin が有効になります。

  6. 変更を server.xml に保存します。
  7. 管理サーバーを再起動して変更を適用します。
  8. これで、どのサーバーインスタンスのどの仮想サーバーでも、次の URL で管理ユーザーインタフェースにアクセスできます。
  9. server_name:port/user-app/server_instance/virtual_server_ID

    その例を次に示します。

    plaza:9999/user-app/plaza/https-plaza

アクセス制御

権限を持たないユーザーによる仮想サーバーの管理操作を禁止するために、ACL を設定できます。仮想サーバーはそれぞれ固有の URI を持つので、正当な管理者のみが仮想サーバーの設定にアクセスできるようにアクセス権を設定できます。

詳細は、第 9 章「サーバーへのアクセス制御」を参照してください。

ログファイル

仮想サーバーごとに専用のログファイルを設定できます。デフォルトでは、すべての仮想サーバーがサーバーインスタンスのログファイルを共有します。ユーザーが各自のログファイルを表示できるようにするには、ほとんどの場合、各仮想サーバーが専用のアクセスログおよびエラーログを使用するようにログファイルの設定を変更する必要があります。

詳細は、「仮想サーバーのログの設定」を参照してください。


仮想サーバーの配備

Sun ONE Web Server の仮想サーバーアーキテクチャは、柔軟性に富んでいます。サーバーインスタンスには、セキュリティ保護されたものとそうでないものを含めて、任意の数の待機ソケットを作成できます。また、IP アドレスベースと URL ホストベースの両方の仮想サーバーを構成できます。

さらに、構成が類似する仮想サーバーを、任意の数の仮想サーバークラスにグループ分けすることもできます。仮想サーバークラスに属するすべての仮想サーバーは、obj.conf 内の同じ要求処理命令を共有します。

仮想サーバーごとに、専用の ACL、専用の mime.types ファイル、および専用の Java Web アプリケーションセットを設定することもできます (設定しなくてもかまいません)。

このように設計されているため、さまざまな用途に合わせてサーバーを柔軟に構成できます。次の例では、Sun ONE Web Server で利用可能な構成をいくつか説明します。

例 1 : デフォルトの構成

Sun ONE Web Server を新規にインストールすると、1 つのサーバーインスタンスができます。このサーバーインスタンスは、コンピュータに設定されているすべての IP アドレスのポート 80 (またはインストール時に選択したポート) で待機する待機ソケットを 1 つだけ持ちます。

ローカルネットワークのメカニズムによっては、コンピュータに設定されているアドレスごとに名前とアドレスのマッピングを確立する場合があります。次の例では、コンピュータに 2 つのネットワークインタフェースがあります。1 つはアドレス 127.0.0.1 のループバックインタフェース (ネットワークカードがなくても存在するインタフェース)、もう 1 つはアドレス 10.0.0.1 のイーサネットインタフェースです。

example.com という名前が、DNS により 10.0.0.1 にマッピングされます。待機ソケットは、そのマシンに設定されているすべてのアドレスのポート 80 で待機するように設定されます (「ANY:80」または「0.0.0.0:80」)。

この構成では、次の場所への接続がサーバーに到達し、仮想サーバー VS1 によって処理されます。

通常の Web サーバーの使用法では、この構成を使用します。仮想サーバーや待機ソケットをさらに追加する必要はありません。サーバーの設定を行うには、defaultclass (VS1 は defaultclass のメンバー) および VS1 そのもので設定を変更します。

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

デフォルトの構成で SSL を使用する場合は、単に待機ソケットをセキュリティモードに変更するだけです。これは、以前のバージョンの Sun ONE Web Server でセキュリティを設定する方法と同様です。

また、セキュリティ保護された待機ソケット (ANY:443 に設定) を新しく追加して、その新しい待機ソケットに VS1 を関連付けることもできます。この仮想サーバーは SSL を使用する待機ソケットと、SSL を使用しない待機ソケットを持ちます。これにより、サーバーは SSL を使用する場合と使用しない場合に同じコンテンツを提供します。つまり、http://example.com/https://example.com/ は同じコンテンツを提供します。

SSL パラメータは待機ソケットに対して設定します。つまり、特定の待機ソケットに設定されているすべての仮想サーバーに対して 1 つの SSL パラメータセットを設定します。

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

さらに複雑な Sun ONE Web Server の構成として、イントラネットで、サーバーが複数の仮想サーバーをホスト処理する構成があります。たとえば、3 つの内部サイトがあり、従業員は、1 つ目のサイトで他のユーザーの電話番号を検索でき、2 つ目のサイトで構内の地図を参照でき、3 つ目のサイトでは情報サービス部門に出した要求の状態を追跡できるとします。この例では、以前は、これらのサイトが 3 つのコンピュータでホスト処理され、それぞれのコンピュータに phone.example.commaps.example.com、および is.example.com という名前が割り当てられていました。

ハードウェアと管理のオーバーヘッドを最小化するために、3 つすべてのサイトを example.com のマシン上の 1 つの Web サーバーに統合します。これは、URL ホストベースの仮想サーバー、または独立した待機ソケットを使用する 2 つの方法で設定できます。両者には、それぞれに長所と短所があります。

URL ホストベースの仮想サーバーは設定が簡単ですが、次のような制限があります。

アドレスごとに 1 つの待機ソケットを持つ IP アドレスベースの構成も可能です。

IP アドレスベースの仮想サーバーによるイントラネットホスティングには、次のような長所があります。

一方で、次のような短所があります。

どちらの構成でも、3 つの名前について名前とアドレスのマッピングを設定する必要があります。IP アドレスベースの構成では、それぞれの名前を別々のアドレスにマッピングします。同時に、それらのアドレスの接続をすべて受け入れるようにホストマシンを設定する必要があります。URL ホストベースの構成では、すべての名前を同じアドレス (もともとマシンに割り当てられているアドレス) にマッピングします。

複数の待機ソケットを持つ構成では、要求の受け入れ先アドレスをサーバーが検索する必要がないため、負荷の上昇は最小限になります。ただし、複数の待機ソケットを使用すると、受け入れスレッドが増えるため、オーバーヘッド (メモリおよびスケジューリング) も増えます。

例 4 : マスホスティング

マスホスティングは、多数の低トラフィック仮想サーバーを使用可能にする構成です。たとえば、多数の低トラフィックの個人ホームページをホスト処理する ISP などは、このカテゴリに分類されます。

仮想サーバーは、通常は URL ホストベースであり、提供するサービスのレベルに応じて、複数の仮想サーバークラスの 1 つに属します。たとえば、スタティックコンテンツのみを使用できるクラスと、スタティックコンテンツと CGI を使用できるクラスを作成できます。

この場合も、サーバーのインストール時にインストールされた仮想サーバー VS1 は、defaultclass に存在しています。



前へ      目次      索引      次へ     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.