Sun ONE Application Server 7, Enterprise Edition 管理者ガイド |
第 15 章
仮想サーバーコンテンツの管理この章では、複数の仮想サーバーによって配信される多種多様なファイルに対し、その設定と管理の方法を説明します。
この章では次のトピックについて説明します。
ドキュメントルートの変更ドキュメントルートは中央のディレクトリで、リモートクライアントから利用できるファイルのすべてを格納します。
仮想サーバーを追加するときには、絶対パスでドキュメントルートを指定します。ドキュメントルートとその使用方法の詳細は、「ドキュメントルート」を参照してください。
管理インタフェースで、ドキュメントルートを別のパスに変更するには、次の手順に従います。
詳細は、オンラインヘルプを参照してください。
追加ドキュメントディレクトリの設定ほとんどの場合、仮想サーバーインスタンスおよびサーバーインスタンスのドキュメントは、ドキュメントルートに格納されます。ただし、ドキュメントルートの外部のディレクトリからドキュメントを配信することもできます。そのためには、追加ドキュメントディレクトリを設定します。ドキュメントルートの外部のディレクトリから配信することにより、プライマリドキュメントルートへのアクセスを許可せずに、グループ化したドキュメントの管理を、他者に任せることができます。
管理インタフェースで、追加ドキュメントディレクトリを設定するには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「Doc Directories (ドキュメントディレクトリ)」タブをクリックします。
- 「Additional Doc Directories (追加ドキュメントディレクトリ)」をクリックします。
- マッピングする URL プレフィックスを選択します。
クライアントは、ドキュメントの要求時に、この URL をサーバーへ送ります。
- これらの URL のマッピング先となるディレクトリを指定します。
- 「OK (了解)」をクリックします。
詳細は、オンラインヘルプを参照してください。
ユーザーによるディレクトリへの書き込みを不可能にするために、追加ドキュメントディレクトリへのアクセスに制限を設定する必要があります。
リモートファイル操作の有効化リモートファイル操作を有効にすると、サーバーに対するファイルのアップロード、ファイルの削除、ディレクトリの作成、ディレクトリの削除、ディレクトリ内容の一覧表示、およびファイル名の変更をクライアントが実行できるようになります。仮想サーバーの設定ファイル obj.conf には、リモートファイル操作を有効にした場合にアクティブになるコマンドが含まれています。これらのコマンドをアクティブにすると、リモートのブラウザからサーバー上のドキュメントを変更できます。アクセス制御を使ってこれらのリソースへの書き込みアクセスを制限することによって、認証されていない変更を阻止する必要があります。
リモートファイル操作を有効にしても、Microsoft Frontpage などのコンテンツ管理システムの使用に影響がないことが必要となります。
UNIX 環境では : この設定を行う管理者がファイルに対する適切なアクセス権を持たない場合、この操作は機能しません。つまり、ドキュメントルートユーザーはサーバーユーザーと同等であることが必要です。
管理インタフェースで、リモートファイル操作を有効にするには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「Doc Directories (ドキュメントディレクトリ)」タブをクリックします。
- 「Remote File Manipulation (リモートファイル操作)」をクリックします。
- 仮想サーバー全体に変更を適用するために、リソースの選択肢から「Entire Server (サーバー全体)」を選びます。あるいは、仮想サーバー内の特定のディレクトリに移動します。
- アクティブにするリモートファイル操作を選択します。
- 「OK (了解)」をクリックします。
詳細は、オンラインヘルプを参照してください。
htaccess の使用htaccess ファイルは、設定オプションのサブセットを格納した動的な設定ファイルです。このファイルは、Sun ONE Application Server 7, Enterprise Edition 標準のアクセス制御と、組み合わせて使用できます。ただし、htaccess によるアクセス制御より、標準のアクセス制御が、常に優先して適用されます。
htaccess の使用方法については、『Sun ONE Application Server セキュリティ管理者ガイド』を参照してください。
シンボリックリンクの制限 (UNIX)サーバーでのファイルシステムリンクの使用を制限することができます。ファイルシステムリンクは、別のディレクトリやファイルシステムに格納されているファイルへの参照です。参照によって、現在のディレクトリにあるファイルと同様に、リモートファイルへのアクセスが可能となります。ファイルシステムリンクには次の 2 種類があります。
ハードリンクとシンボリックリンクの詳細は、使用している UNIX システムのマニュアルを参照してください。
ファイルシステムリンクを使用すると、プライマリディレクトリの外部に格納されているドキュメントへのポインタを誰でも簡単に作成できます。このため、重要なファイル (機密文書、システムのパスワードファイルなど) へのポインタを作成されないように気を付ける必要があります。
管理インタフェースで、シンボリックリンクを制限するには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「Doc Directories (ドキュメントディレクトリ)」タブをクリックします。
- 「Symbolic Links (シンボリックリンク)」をクリックします。
- 仮想サーバー全体に変更を適用するために、リソースの選択肢から「Entire Server (サーバー全体)」を選びます。あるいは、仮想サーバー内の特定のディレクトリに移動します。
- ソフトリンクまたはハードリンク、あるいはその両方を有効にするかどうか、および元のディレクトリを選択します。
- 「OK (了解)」をクリックします。
詳細は、オンラインヘルプを参照してください。
ユーザーの公開情報ディレクトリのカスタマイズ (UNIX)ユーザーが独自の Web ページを運用したい場合もあります。公開情報ディレクトリを設定することにより、サーバー上のすべてのユーザーがホームページなどのドキュメントを自由に作成できるようになります。
このシステムによって、サーバーが公開情報ディレクトリとして認識する URL を使って、クライアントはサーバーにアクセスできます。たとえば、プレフィックス ~ とディレクトリ public_html を選択するとします。http://www.sun.com/~jdoe/aboutjane.html という要求が到着すると、サーバーは ~jdoe をユーザーの公開情報ディレクトリと認識します。サーバーは、システムのユーザーデータベースで jdoe を検索し、Jane のホームディレクトリを見つけ出します。その結果、~/jdoe/public_html/aboutjane.html が参照されます。
この節には次の項目があります。
公開情報ディレクトリの設定
管理インタフェースで、公開ディレクトリを使うために仮想サーバーを設定するには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「Doc Handling (ドキュメント処理)」タブをクリックします。
- 「User Doc Directories (ユーザードキュメントディレクトリ)」をクリックします。
- ユーザー URL プレフィックスを選択します。
通常、プレフィックスは ~ です。UNIX では、ティルダが、ユーザーのホームディレクトリへアクセスする場合の標準プレフィックスであるためです。
- ユーザーのホームディレクトリで、サーバーが HTML ファイルを検索するサブディレクトリを選択します。
通常は public_html です。
- パスワードファイルを指定します。
サーバー上のユーザーリストが格納されるファイルを検索する場所を、サーバーに認識させる必要があります。サーバーはこのファイルを使って、有効なユーザー名を確認し、ユーザーのホームディレクトリを見つけます。このとき、システムのパスワードファイルを指定すると、サーバーはユーザーの検索に標準のライブラリ呼び出しを使います。一方、別のユーザーファイルを作成して、ユーザーの検索に使うこともできます。絶対パスを使って、ユーザーファイルを指定できます。
ファイルの各行を、次の構造にする必要があります。/etc/passwd ファイル内の不要な要素は、* で表されています。
username:*:*:groupid:*:homedir:*
- 起動時にパスワードデータベースを読み込むかどうかを選択します。
詳細は、「起動時のパスワードファイル全体の読み込み」を参照してください。
- 「OK (了解)」をクリックします。
詳細は、オンラインヘルプを参照してください。
すべてのユーザーが変更可能な中央ディレクトリへの URL マッピングを作成して、ユーザーに個別のディレクトリを与える方法もあります。
コンテンツ公開の制限
システム管理者としては、ユーザードキュメントディレクトリを介してコンテンツを公開できるユーザーアカウントに、制限を加えたい場合もあります。ユーザーによる公開を制限するには、/etc/passwd ファイルでユーザーのホームディレクトリの後ろにスラッシュを追加します。
上記を次のように変更します。
このように変更すると、Sun ONE Application Server はこのユーザーのディレクトリからページを配信しません。この URI を要求したブラウザは、"404 File Not Found" エラーを受け取ります。また、404 エラーはアクセスログに記録されます。
その後、このユーザーにコンテンツの公開を許可する場合は、/etc/passwd エントリから後続のスラッシュを削除し、アプリケーションサーバーインスタンスを再起動します。
起動時のパスワードファイル全体の読み込み
起動時に、パスワードファイル全体を読み込むオプションを設定することもできます。このオプションを選択すると、サーバーは起動時にパスワードファイルをメモリに読み込むため、ユーザーの検索が速くなります。ただし、パスワードファイルが大きい場合は、メモリが大量に消費されます。
ドキュメントの環境設定この節には次の項目があります。
管理インタフェースで、ドキュメントの環境設定を行うには、次の手順に従います。
設定できる環境設定については、後続の各節で説明します。詳細は、オンラインヘルプを参照してください。
インデックスファイル名の入力
ドキュメント名が URL で指定されていない場合、サーバーはインデックスファイルを自動的に表示します。デフォルトのインデックスファイルは、index.html および home.html です。複数のインデックスファイルが指定されている場合、サーバーはこのフィールドに表示されている順序でファイルを検索します。たとえば、インデックスファイル名が index.html と home.html の場合、サーバーは先に index.html を検索し、見つからないと次に home.html を検索します。
ディレクトリの索引化の選択
通常、ドキュメントディレクトリには複数のサブディレクトリを作成します。たとえば、products、people などです。クライアントがこれらのディレクトリの概要 (索引) にアクセスできると便利です。
サーバーは、各ディレクトリで index.html または home.html と呼ばれるインデックスファイルを検索して、ディレクトリの索引化を行います。これらのファイルは、管理者がディレクトリのコンテンツの概要として作成および管理するファイルです。詳細は、「インデックスファイル名の入力」を参照してください。ファイル名をデフォルトの名前にすることによって、任意のファイルをディレクトリのインデックスファイルとして指定できます。したがって、CGI プログラムをインデックスとすることも可能です。
インデックスファイルが見つからない場合、サーバーはドキュメントルート内のすべてのファイルを一覧表示するインデックスファイルを生成します。
サーバーホームページの指定
通常、エンドユーザーがサーバーにアクセスすると、ホームページと呼ばれるファイルが最初に表示されます。このファイルには、サーバーに関する情報や、その他のドキュメントへのリンクを設定します。
デフォルトでは、サーバーは「Document Preferences (ドキュメントプリファレンス)」ページの「Index Filename (インデックスファイル名)」フィールドで指定されたインデックスファイルを見つけ出し、このファイルをホームページとして使います。ただし、ホームページとして使うファイルを別に指定することもできます。
デフォルト MIME タイプの指定
サーバーは、ドキュメントをクライアントに送信するときに、ドキュメントタイプを示すセクションを挿入するため、クライアントはドキュメントを適切に表現できます。ただし、ドキュメントの拡張子がサーバーで定義されていないと、サーバーは適切なドキュメントタイプを判別できません。このような場合は、デフォルトのタイプが送信されます。
通常、デフォルトは text/plain ですが、サーバーに格納されているファイルのうち最も多いタイプを設定することをお勧めします。一般的な MIME タイプには、次のようなものがあります。
エラー応答のカスタマイズカスタムエラー応答を指定することにより、仮想サーバーでエラーが発生したときにクライアントへ詳しいメッセージを送ることができます。送信するファイルまたは実行する CGI プログラムを指定できます。
たとえば、特定のディレクトリに関するエラーが発生した場合、サーバーの動作を変更することができます。サーバー内のアクセス制御で保護された部分にクライアントが接続を試みた場合に、アカウントの取得方法を説明するエラーファイルを返すこともできます。
カスタムエラー応答を有効にする前に、エラーに応答して送信される HTML ファイルまたは実行される CGI プログラムを作成しておく必要があります。作成後、管理インタフェースでエラー応答を有効にします。
管理インタフェースで、カスタマイズしたエラー応答を有効にするには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「Doc Handling (ドキュメント処理)」タブをクリックします。
- 「Error Responses (エラー応答)」をクリックします。
- 仮想サーバー全体に変更を適用するために、リソースの選択肢から「Entire Server (サーバー全体)」を選びます。あるいは、仮想サーバー内の特定のディレクトリに移動します。
- 変更するエラーコードごとに、エラー応答を含むファイルまたは CGI への絶対パスを指定します。
- 「OK (了解)」をクリックします。
詳細は、オンラインヘルプを参照してください。
国際文字セットの変更ドキュメントの文字セットは、ドキュメントが記述されている言語によって部分的に決められます。リソースを選択し、そのリソースに対する文字セットを設定することにより、ドキュメント、ドキュメントセット、またはディレクトリに対してデフォルトで設定されているクライアントの文字セット設定をオーバーライドできます。
HTTP で MIME タイプの charset パラメータを使うと、ブラウザは文字セットを変更できます。サーバーが応答にこのパラメータを挿入すると、それに基づいてブラウザは文字セットを変更します。たとえば、次のような指定があります。
次の charset 名が RFC 1700 で定められています (x- で始まる名前を除く)。
us-ascii には、次のエイリアスが認識されます。
iso_8859-1 には、次のエイリアスが認識されます。
管理インタフェースで、文字セットを変更するには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「Doc Handling (ドキュメント処理)」タブをクリックします。
- 「International Characters (国際文字セット)」をクリックします。
- 仮想サーバー全体に変更を適用するために、リソースの選択肢から「Entire Server (サーバー全体)」を選びます。あるいは、仮想サーバー内の特定のディレクトリに移動します。
- サーバーの全体または一部に文字セットを設定します。
このフィールドに何も入力しないと、文字セットは NONE に設定されます。
- 「OK (了解)」をクリックします。
詳細は、オンラインヘルプを参照してください。
ドキュメントフッターの設定サーバーの特定のセクションの全ドキュメントに適用するドキュメントフッターを指定することができます。ドキュメントフッターには最終更新時刻が含まれます。このフッターは、CGI スクリプトの出力と解析される HTML ファイル (.shtml) の出力を除くすべてのファイルに適用されます。ドキュメントフッターを CGI スクリプトの出力や解析された HTML ファイルに表示させるには、フッターテキストを個別のファイルに入力しておき、このファイルをページの出力に加えるために、コード行などのサーバー側インクルードを追加します。
管理インタフェースで、ドキュメントフッターを設定するには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「Doc Handling (ドキュメント処理)」タブをクリックします。
- 「Doc Footer (ドキュメントフッター)」をクリックします。
- 仮想サーバー全体に変更を適用するために、リソースの選択肢から「Entire Server (サーバー全体)」を選びます。あるいは、仮想サーバー内の特定のディレクトリに移動します。
ディレクトリを選択した場合、そのディレクトリかそのディレクトリ内のファイルを表す URL をサーバーが受信したときだけ、ドキュメントフッターが適用されます。
- フッターを含めるファイルのタイプを指定します。
- 日時形式を指定します。
- フッターに表示するテキストを入力します。
ドキュメントフッターの最大文字数は 765 です。ドキュメントの最終更新日時を含める場合は、文字列 :LASTMOD: を入力します。
詳細は、オンラインヘルプを参照してください。
URL 転送の設定URL 転送によって、ドキュメント要求を別のサーバーにリダイレクトできます。URL の転送 (リダイレクト) は、URL が変更されたことをサーバーからユーザーに通知する手段です (ファイルを別のディレクトリやサーバーへ移動した場合など)。リダイレクトを使うことによって、あるサーバー上のドキュメントを要求したユーザーを、本人が意識することなく、別のサーバーの上のドキュメントへリダイレクトすることもできます。
たとえば、http://www.sun.com/info/movies をプレフィックス film.sun.com に転送する場合、http://www.sun.com/info/movies の URL は http://film.sun.com/info/movies にリダイレクトされます。
サブディレクトリ内のすべてのドキュメントに対する要求を、特定の URL へリダイレクトしたい場合も考えられます。たとえば、あるディレクトリへのトラフィックが集中していることや、なんらかの理由によりドキュメントを配信できなくなったことにより、そのディレクトリを削除する必要がある場合、ディレクトリ内のドキュメントへの要求を、ドキュメントが利用できなくなった理由を説明するページへ転送することができます。/info/movies のプレフィックスを http://www.sun.com/explain.html へリダイレクトすることなどが可能です。
管理インタフェースで、URL 転送を設定するには、次の手順に従います。
詳細は、オンラインヘルプを参照してください。
サーバーで解析される HTML の設定通常、HTML がクライアントに送信されるときには、サーバーによる介入を受けずに、ディスクに存在するまま送られます。ただし、サーバーはドキュメントを送信する前に、特別なコマンドについて HTML ファイルを解析 (パース) することができます。HTML ファイルを解析し、要求に固有の情報やファイルをドキュメントに挿入するようサーバーを設定するには、HTML の解析を有効にしておく必要があります。
管理インタフェースで、HTML の解析を設定するには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「HTTP/HTML」タブをクリックします。
- 「Parse HTML (HTML を解析)」をクリックします。
- 仮想サーバー全体に変更を適用するために、リソースの選択肢から「Entire Server (サーバー全体)」を選びます。あるいは、仮想サーバー内の特定のディレクトリに移動します。
ディレクトリを選択した場合、そのディレクトリかそのディレクトリ内のファイルを表す URL を受信したときだけ、サーバーは HTML を解析します。
- サーバーで解析される HTML を有効にするかどうかを選択します。
HTML ファイルに対してだけ有効にし、exec タグに対しては無効にすることができます。あるいは、HTML ファイルと exec タグの両方に対して有効にすることもでき、この場合は HTML ファイルでサーバー上のほかのプログラムを実行できます。
- どのファイルを解析するかを選択します。
.shtml という拡張子を持つファイルだけを解析するか、すべての HTML ファイルを解析するかを選択できます。後者の場合はパフォーマンスが低下します。UNIX を使用している場合は、実行権限がある UNIX ファイルを選択することもできますが、信頼性は保証されません。
- 「OK (了解)」をクリックします。
解析された HTML を受け入れるサーバーの詳しい設定方法については、オンラインヘルプを参照してください。
サーバーで解析された HTML の使用方法に関する詳細は、『Sun ONE Application Server Web アプリケーション開発者ガイド』を参照してください。
キャッシュ制御指令の設定キャッシュ制御指令とは、Sun ONE Application Server 側から、プロキシサーバーにキャッシュされる情報を制御するための、1 つの方法です。この指令によって、プロキシサーバーのデフォルトのキャッシュ設定を上書きすることにより、キャッシュされた機密情報が後から検索可能になる現象を防止できます。この指令を機能させるためには、プロキシサーバー側で、HTTP 1.1 への準拠が必要です。
HTTP 1.1 の詳細は、『Hypertext Transfer Protocol--HTTP/1.1 specification (RFC 2068)』を参照してください。URL は次のとおりです。
管理インタフェースで、キャッシュ制御指令を設定するには、次の手順に従います。
- 左側のペインでアプリケーションサーバーインスタンスを選択し、HTTP サーバーを開きます。
- 「Virtual Servers (仮想サーバー)」を開きます。
- 編集する仮想サーバーの名前をクリックします。
- 「HTTP/HTML」タブをクリックします。
- 「Cache Control Directives (キャッシュ制御指令)」をクリックします。
- フィールドに必要な情報を入力します。応答指令に有効な値は、次のとおりです。
- 公開 (Public): どのキャッシュでも、応答をキャッシュできる。これはデフォルトのオプションである
- 非公開 (Private): プライベート (非共有) キャッシュだけで、応答をキャッシュできる
- キャッシュ無し (No Cache): どこにも、応答をキャッシュできない
- ストアなし (No Store): 不揮発性ストレージのどこにも、要求や応答のキャッシュを保存できない
- 再検証が必要 (Must Revalidate): キャッシュエントリは発信元サーバーに再検証されることが必要
- 最長有効期間 (秒) (Maximum Age): クライアントは、この期間を超過している応答を受け入れない
- 「OK (了解)」をクリックします。
詳細は、オンラインヘルプを参照してください。
より強力な暗号化方式の使用より強力な暗号化方式の設定方法については、『Sun ONE Application Server セキュリティ管理者ガイド』を参照してください。