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