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

Sun ONE Web Server 6.1 管理者ガイド

第 16 章
コンテンツ管理

この章では、仮想サーバーのクラスと仮想サーバーについて、コンテンツを設定して管理する方法を説明します。

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


プライマリドキュメントディレクトリの設定

プライマリドキュメントディレクトリ (ドキュメントルートとも呼ばれます) は、リモートクライアントで利用したいすべてのファイルを格納するための中央ディレクトリです。

クラスを追加する場合は、絶対パスでドキュメントディレクトリを指定します。この絶対パスの一部として変数を使用しない場合は、クラス内のすべての仮想サーバーに対するドキュメントルートがデフォルトで同じディレクトリになります。クラスマネージャでドキュメントルートを個別に変更することもできます。

別の方法として、クラスに対してパスを設定するとき、変数を使用することもできます。たとえば、$id 変数を使用して、クラス内のすべての仮想サーバーに対して、仮想サーバーの ID を名前に使用したディレクトリを作成することができます。クラスのドキュメントルートを class_doc_root/$id に設定することができます。このパスを使用すると、クラスのドキュメントディレクトリが /sun/servers/docs/$id の場合、そのクラスに属している仮想サーバー vs1 のデフォルトのドキュメントディレクトリは /sun/servers/docs/vs1 です。

ドキュメントディレクトリと、サーバーインスタンス、クラス、および仮想サーバーのレベルでのドキュメントディレクトリの使用方法については、「ドキュメントルート」を参照してください。

プライマリドキュメントディレクトリを変更して別のパスや変数を使用するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Primary Document Directory」をクリックします。
  3. 仮想サーバーの横に、ディレクトリへの絶対パスや変数、または、パスと変数の組み合わせを入力します。
  4. ドキュメントルートの絶対パスの最後に $id 変数を付けると、デフォルトでは、仮想サーバーごとに、class_doc_root/virtual_server_ID というドキュメントルートが設定されます。たとえば、クラスのドキュメントディレクトリが /sun/servers/docs/$id の場合、そのクラスに属する仮想サーバー vs1 のデフォルトのドキュメントディレクトリは、/sun/servers/docs/vs1 になります。

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

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

詳細は、「Primary Document Directory」ページのオンラインヘルプを参照してください。


通常、各仮想サーバーには固有のプライマリドキュメントディレクトリがあります。



追加ドキュメントディレクトリの設定

ほとんどの場合、仮想サーバー、またはサーバーインスタンスのドキュメントは、プライマリドキュメントディレクトリにあります。ただし、ドキュメントルート外のディレクトリからドキュメントを参照する場合もあります。追加ドキュメントディレクトリを設定すると、ドキュメントルート外のディレクトリからドキュメントを参照できます。ドキュメントルート外のドキュメントディレクトリを参照できるようにすることで、ほかのユーザーにプライマリドキュメントルートへアクセスすることなくドキュメントのグループを管理することを許可できます。

変数を使用しないで追加ドキュメントディレクトリを設定する場合は、そのディレクトリがクラスレベルで設定され、クラス内のすべての仮想サーバーによって使用されます。

クラス内の個々の仮想サーバーに対して追加ドキュメントディレクトリを設定する場合、URL プレフィックスがマッピングされるディレクトリは仮想サーバーごとに変わるため、変数を使用する必要があります。

追加ドキュメントディレクトリを追加するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Additional Document Directories」をクリックします。
  3. マッピングする URL プレフィックスを選択します。
  4. クライアントはドキュメントが必要なとき、この URL をサーバーに送信します。

  5. URL をマッピングするディレクトリを指定します。
  6. 必要に応じて、既存の設定スタイルを使用し、このディレクトリの設定方法を指定します。
  7. 「OK」をクリックします。

詳細は、「Additional Document Directories」ページのオンラインヘルプを参照してください。

デフォルトでは、サーバーインスタンスにいくつかの追加ドキュメントディレクトリがあります。そのディレクトリには、次のプレフィックスが付いています。

これらのディレクトリへのアクセスを制限して、ユーザーが書き込めないようにする必要があります。ACL の例を次に示します。


ユーザー公開情報ディレクトリのカスタマイズ (UNIX/Linux)

ユーザーが独自の Web ページを管理する場合もあります。サーバー上のすべてのユーザーが、自由にホームページやその他のドキュメントを作成できるように、公開情報ディレクトリを設定することができます。

この設定ができるのは、クラス全体を対象とする場合だけです。仮想サーバーごとにカスタマイズする方法はありません。

このシステムでは、クライアントは公開情報ディレクトリとしてサーバーに認識されている特定の URL を使用してサーバーにアクセスできます。たとえば、プレフィックス ~ とディレクトリ public_html を選択するとします。http://www.sun.com/~jdoe/aboutjane.html が要求された場合、サーバーは ~jdoe がユーザーの公開情報ディレクトリを参照していると認識します。サーバーはシステムのユーザーデータベースの jdoe で Jane のホームディレクトリを検索します。次に、サーバーは ~/jdoe/public_html/aboutjane.html を検索します。

公開ディレクトリを使用するようにサーバーを設定するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「User Document Directories」をクリックします。
  3. ユーザーの URL プレフィックスを選択します。
  4. チルド文字がユーザーのホームディレクトリにアクセスするための標準的な UNIX/Linux プレフィックスであるため、通常のプレフィックスは ~ です。

  5. サーバーが HTML ファイルを検索する、ユーザーのホームディレクトリ内にあるサブディレクトリを選択します。
  6. 通常のディレクトリは public_html です。

  7. パスワードファイルを指定します。
  8. サーバーでは、システム上のユーザーのリストがあるファイルを検索する場所を認識している必要があります。サーバーはこのファイルを使用して、ユーザー名が有効であるかどうかを判断し、そのユーザーのホームディレクトリを検索します。この目的でシステムのパスワードファイルを使用する場合、サーバーは標準のライブラリコールを使用してユーザーを検索します。あるいは、別のユーザーファイルを作成して、ユーザーを検索することもできます。このユーザーファイルは絶対パスで指定することができます。

    ファイルの各行を次の構造にする必要があります (/etc/passwd ファイル内の必要のない要素は * で表示されています)。

       username:*:*:groupid:*:homedir:*

  9. 起動時にパスワードデータベースを読み込むかどうかを選択します。
  10. 詳細は、「起動時のパスワードファイル全体の読み込み」を参照してください。

  11. 設定スタイルを適用するかどうかを選択します。
  12. 「OK」をクリックします。

詳細は、「User Document Directories」ページのオンラインヘルプを参照してください。

ユーザーに個別のディレクトリを提供するもう 1 つの方法は、すべてのユーザーが修正できる中央ディレクトリへの URL マッピングを作成することです。

コンテンツ発行の制限

システム管理者が、ユーザードキュメントディレクトリからコンテンツを発行できるユーザーアカウントを制限したい場合もあります。ユーザーによる発行を制限するには、/etc/passwd ファイルのユーザーのホームディレクトリのパスの最後にスラッシュを追加します。

を次のように修正します。

この修正を行うと、Sun ONE Web Server はこのユーザーのディレクトリのページを提供しなくなります。URI を要求するブラウザは「404 File Not Found」エラーを受信し、Web サーバーのアクセスログに 404 エラーが記録されます。エラーログにはエラーが記録されません。

この修正のあと、このユーザーにコンテンツの発行を許可する場合は、/etc/passwd エントリから最後のスラッシュを削除して、Web サーバーを再起動します。

起動時のパスワードファイル全体の読み込み

起動時にパスワードファイル全体を読み込むオプションもあります。このオプションを選択する場合、サーバーは起動時にパスワードファイルをメモリに読み込むため、ユーザーの検索がかなり速くなります。ただし、パスワードファイルが非常に大きい場合は、このオプションでメモリを使い過ぎる可能性があります。

設定スタイルの使用

サーバーに設定スタイルを適用して、公開情報ディレクトリからディレクトリへのアクセスを制御することができます。これによって、管理者が公開したくない情報にユーザーがシンボリックリンクを作成するのを防止できます。設定ファイルについては、第 17 章「設定スタイルの適用」を参照してください。


リモートファイル操作の有効化

リモートファイル操作を有効にする場合、クライアントはファイルのアップロード、ファイルの削除、ディレクトリの作成、ディレクトリの削除、ディレクトリの中身のリスト表示、サーバー上のファイルの名前変更などを実行できます。ディレクトリ server_root/https-serve-id/config 内のファイル obj.conf には、リモートファイル操作を有効にした場合にアクティブになるコマンドが格納されています。これらのコマンドをアクティブにすると、リモートブラウザでサーバーのドキュメントを変更できるようになります。アクセス制御を使用して、これらのリソースへの書き込みを制限し、認証を受けていないユーザーによる変更を防止する必要があります。

リモートファイル操作を有効にしても、Microsoft Frontpage などのコンテンツ管理システムの使用に影響を及ぼすことはありません。

UNIX/Linux の場合: ファイルへのアクセス権がないと、この機能は動作しません。つまり、ドキュメントルートユーザーをサーバーユーザーと同じにする必要があります。

リモートファイル操作を有効にするには、次の手順を実行します。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Remote File Manipulation」をクリックします。
  3. リモートファイル操作を有効にするオプションを選択します。
  4. 「OK」をクリックします。

詳細は、「Remote File Manipulation」ページのオンラインヘルプを参照してください。


ドキュメントの設定

「Document Preferences」ページを使用して、ドキュメント設定を行います。この節では、以下の項目について説明します。

これらの設定はすべて、個々の仮想サーバーではなく、クラスに対して適用されます。

ドキュメント設定の変更

ドキュメント設定を変更するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Document Preferences」をクリックします。
  3. 次の節で説明するように、適切なフィールド値を選択します。
  4. 「OK」をクリックします。

変更できる設定については、次の節で詳しく説明します。詳細は、「Document Preferences」ページのオンラインヘルプを参照してください。

インデックスファイル名の入力

URL でドキュメント名が指定されていない場合は、自動的にインデックスファイルが表示されます。デフォルトのインデックスファイルは index.htmlhome.html です。複数のインデックスファイルが指定されている場合、どれか見つかるまでこのフィールドに表示される名前順に検索されます。たとえば、インデックスファイル名が index.htmlhome.html の場合、サーバーは index.html を検索し、見つからない場合は home.html を検索します。

ディレクトリのインデックス作成の選択

ほとんどの場合、ドキュメントディレクトリにはいくつかのサブディレクトリがあります。たとえば、productspeople などの名前が付いたディレクトリがあるとします。多くの場合、クライアントがこのようなディレクトリの概要 (またはインデックス) にアクセスできると便利です。

サーバーは index.html または home.html という名前のインデックスファイルをディレクトリ内で検索して、ディレクトリのインデックスを作成します。index.html または home.html は、ディレクトリの中身の概要として作成し、管理するファイルです。詳細は、「インデックスファイル名の入力」を参照してください。デフォルト名の 1 つを付けることによって、どのファイルでもディレクトリのインデックスファイルとして指定することができます。つまり、CGI が有効な場合には、CGI プログラムをインデックスとして使用することもできます。

インデックスファイルが見つからない場合、サーバーはドキュメントルート内のすべてのファイルをリスト表示するインデックスファイルを生成します。


警告

サーバーがファイアウォール外にある場合は、ディレクトリのインデックス作成を無効にして、ディレクトリ構造やファイル名にアクセスできないようにします。


サーバーのホームページの指定

エンドユーザーが最初にサーバーにアクセスしたときに表示されるファイルは、通常、ホームページと呼ばれます。通常、このファイルにはサーバーについての一般情報とほかのドキュメントへのリンクがあります。

デフォルトでは、サーバーは「Document Preferences」ページの「Index Filenames」フィールドで指定されているインデックスファイルを検索し、ホームページとして使用します。ただし、ホームページとして使用するファイルを指定することもできます。

デフォルト MIME タイプの指定

ドキュメントがクライアントに送信されるとき、クライアントがドキュメントを正しく表示できるように、ドキュメントのタイプを指定する部分を含めて送信されます。ただし、サーバーに対してドキュメントの拡張子が定義されていないために、サーバーがドキュメントのタイプを判断できない場合もあります。このような場合は、デフォルト値が送信されます。

デフォルトは通常、text/plain ですが、サーバーに格納されているもっとも一般的なタイプに設定する必要があります。次に一般的な MIME タイプの一部を示します。

  • text/plain
  • text/html
  • text/richtext
  • image/tiff
  • image/jpeg
  • image/gif
  • application/x-tar
  • application/postscript
  • application/x-gzip
  • audio/basic


URL 転送の設定

URL 転送を使用すると、ドキュメント要求を別のサーバーにリダイレクトできます。URL の転送またはリダイレクションは、サーバーがユーザーに URL を変更したこと (たとえば、ファイルを別のディレクトリまたはサーバーに移動した場合) を通知するための方法です。また、リダイレクションを使用して、あるサーバーのドキュメントをユーザーが要求した場合に、その要求をスムーズに別のサーバーのドキュメントに送信することができます。

たとえば、http://www.sun.com/info/movies をプレフィックス film.sun.com に転送する場合には、URL http://www.sun.com/info/movieshttp://film.sun.com/info/movies にリダイレクトされます。

変数を使用して、ディレクトリを新しいディレクトリにマッピングすることができます。たとえば、/new/$docroot/new にマッピングすることができます。マッピングによって、仮想サーバーのドキュメントルートに移動します。

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

1 つのサブディレクトリ内のすべてのドキュメントに対する要求を特定の URL にリダイレクトする場合もあります。たとえば、あまりにも多くのトラフィックが生じるため、または、何らかの理由でドキュメントが公開されなくなったために、ディレクトリを移動する必要がある場合、ドキュメントに対する要求を、ドキュメントを利用できなくなった理由を説明するページに誘導することができます。たとえば、/info/movies のプレフィックスを http://www.sun.com/explain.html にリダイレクトするなどです。

URL 転送を設定するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「URL Forwarding」をクリックします。
  3. リダイレクトする URL プレフィックスを入力し、リダイレクト先を別のプレフィックスにするか、またはスタティックな URL にするかを指定します。
  4. 「OK」をクリックします。

詳細は、「URL Forwarding」ページのオンラインヘルプを参照してください。


エラー応答のカスタマイズ

仮想サーバーでエラーが発生した場合にクライアントに詳細なメッセージを送信する、カスタムエラー応答を指定できます。送信するファイルまたは実行する CGI プログラムを指定できます。

たとえば、特定のディレクトリでエラーが発生した場合のサーバーの動作を変更することができます。クライアントがアクセス制御によって保護されているサーバーの一部に接続しようとする場合、アカウントの取得方法についての情報が記載されたエラーファイルを返すように設定できます。

カスタムエラー応答を有効にするには、エラー応答として送信する HTML ファイルまたは 実行する CGI プログラムを作成する必要があります。そのあとで、クラスマネージャで応答を有効にします。

カスタマイズされたエラー応答を有効にするには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Error Responses」をクリックします。
  3. リソースピッカーから「Entire Server」を選択し、クラス全体に対して変更を適用するか、特定の仮想サーバーに対するドキュメントルートまたは特定の仮想サーバー内の特定のディレクトリを指定します。
  4. 変更するエラーコードごとに、エラー応答が含まれるファイルまたは CGI への絶対パスを指定します。
  5. 「OK」をクリックします。

詳細は、「Error Responses」ページのオンラインヘルプを参照してください。


文字セットの変更

ドキュメントの文字セットは、記述されている言語によってある程度決まります。1 つのドキュメント、ドキュメントのセット、またはディレクトリに対するクライアントのデフォルト文字セットの設定は、リソースを選択し、リソースに対する文字セットを入力することによって変更できます。

Netscape Navigator では、HTTP で MIME タイプの charset パラメータを使用して、文字セットを変更できます。サーバーが応答でこのパラメータを指定する場合、それに応じて Netscape Navigator の文字セットが変更されます。次に、その例を示します。

Netscape Navigator で認識される次の charset 名は、RFC 1700 で指定されています (x- で始まる名前を除く)。

  • us-ascii
  • iso-8859-1
  • iso-2022-jp
  • x-sjis
  • x-euc-jp
  • x-mac-roman

さらに、us-ascii に対して次のエイリアスが認識されます。

  • ansi_x3.4-1968
  • iso-ir-6
  • ansi_x3.4-1986
  • iso_646.irv:1991
  • ascii
  • iso646-us
  • ibm367
  • cp367

 

iso_8859-1 に対して、次のエイリアスが認識されます。

  • latin1
  • iso_8859-1
  • iso_8859-1:1987
  • iso-ir-100
  • ibm819
  • cp819

文字セットを変更するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「International Characters」をクリックします。
  3. リソースピッカーから「Entire Server」を選択し、クラス全体に対して変更を適用するか、特定の仮想サーバーに対するドキュメントルートまたは特定の仮想サーバー内の特定のディレクトリを指定します。
  4. サーバー全体またはその一部に対して文字セットを設定します。
  5. このフィールドを空白にしておくと、文字セットが「NONE」に設定されます。

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

詳細は、「International Characters」ページのオンラインヘルプを参照してください。


ドキュメントのフッターの変更

サーバーの特定の部分にあるすべてのドキュメントに対して、フッターを指定できます。フッターには、最後に修正を行なった日時を含めることができます。このフッターは、CGI スクリプトの出力や解析される HTML (.shtml) ファイルを除くすべてのファイルに対して挿入できます。CGI スクリプトの出力または解析される HTML ファイルにドキュメントフッターを表示する必要がある場合は、別のファイルにフッターのテキストを入力し、1 行のコードまたは別のサーバーサイドインクルードを追加して、そのファイルをページの出力に追加します。

ドキュメントフッターを変更するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Document Footer」をクリックします。
  3. リソースピッカーから「Entire Server」を選択し、クラス全体に対して変更を適用するか、特定の仮想サーバーに対するドキュメントルートまたは特定の仮想サーバー内の特定のディレクトリを指定します。
  4. ディレクトリを選択する場合、ドキュメントフッターは、サーバーがそのディレクトリまたはディレクトリ内のファイルの URL を受信したときにだけ適用されます。

  5. フッターを挿入するファイルのタイプを指定します。
  6. データ書式を指定します。
  7. フッターに表示するテキストを入力します。
  8. ドキュメントフッターに使用できる最大文字数は、765 文字です。ドキュメントの最終更新日を含みたい場合には、:LASTMOD: と入力します。

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

詳細は、「Document Footer」ページ「のオンラインヘルプを参照してください。


htaccess の使用

htaccess の使用については、「.htaccess ファイルの使用」を参照してください。


シンボリックリンクの制限 (UNIX/Linux)

サーバーでのファイルシステムリンクの使用を制限することができます。ファイルシステムリンクは、ほかのディレクトリやファイルシステムに格納されているファイルへの参照です。参照によって、現在のディレクトリにあるかのようにリモートファイルにアクセスできるようになります。次の 2 つのタイプのファイルシステムリンクがあります。

ハードリンクとシンボリックリンクについては、各 UNIX/Linux システムのマニュアルを参照してください。

ファイルシステムリンクは、プライマリドキュメントディレクトリ外にあるドキュメントへのポインタを簡単に作成するための方法で、誰でもリンクを作成できます。このため、ほかのユーザーが重要なファイル (たとえば、機密ドキュメントやシステムのパスワードファイル) へのポインタを作成する可能性が心配される場合もあるでしょう。

シンボリックリンクを制限するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Symbolic Links」をクリックします。
  3. リソースピッカーから「Entire Server」を選択し、クラス全体に対して変更を適用するか、特定の仮想サーバーに対するドキュメントルートまたは特定の仮想サーバー内の特定のディレクトリを指定します。
  4. ソフトリンクまたはハードリンクのどちらか、あるいは、両方を有効にするかを選択し、開始ディレクトリを選択します。
  5. 「OK」をクリックします。

詳細は、「Symbolic Link」ページのオンラインヘルプを参照してください。


サーバーが解析する HTML の設定

HTML は通常、ディスク上に実際に存在している通りの状態でクライアントに送信されます。ただし、サーバーはドキュメントを送信する前に、HTML ファイル内にある特別なコマンドを検索できます (つまり、HTML を解析できます)。サーバーでこのようなファイルを解析し、要求に固有の情報またはファイルをドキュメントに挿入したい場合、HTML の解析を事前に有効にしておく必要があります。

HTML を解析するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Parse HTML」をクリックします。
  3. サーバーが HTML を解析するリソースを選択します。
  4. リソースピッカーから「Entire Server」を選択し、クラス全体に対して変更を適用するか、特定の仮想サーバーに対するドキュメントルートまたは特定の仮想サーバー内の特定のディレクトリを指定します。

    ディレクトリを選択する場合、サーバーはそのディレクトリまたはそのディレクトリ内のファイルの URL を受信したときにだけ HTML を解析します。

  5. サーバーによる HTML の解析を有効にするかどうかを選択します。
  6. exec タグを有効にせずに HTML ファイルの解析を有効にすることも、exec タグも含めて HTML ファイルの解析を有効にすることもできます。exec タグを使用すると、HTML ファイルでサーバー上のほかのプログラムを実行できます。

  7. 解析するファイルを選択します。
  8. .shtml という拡張子が付いているファイルだけを解析するか、すべての HTML ファイルを解析するかを選択できます。すべての HTML ファイルを解析する場合、パフォーマンスが低下します。UNIX/Linux を使用している場合、実行権限が有効な UNIX/Linux ファイルの解析を選択することもできます。ただし、この場合は信頼性が損なわれる可能性があります。

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

解析する HTML を受け入れるためのサーバーの設定については、「Parse HTML」ページのオンラインヘルプを参照してください。

サーバーによって解析された HTML の使用については、『Sun ONE Web Server 6.1 Programmer's Guide』を参照してください。


キャッシュ制御指令の設定

キャッシュ制御指令は、プロキシサーバーによってキャッシュに保存される情報を Sun ONE Web Server で制御するための手段です。キャッシュ制御指令を使用すると、プロキシのデフォルトで設定されているキャッシュに保存する機能が制限され、重要な情報がキャッシュに保存されてあとから取得される可能性がないように保護されます。このような指令を実行するには、プロキシサーバーが HTTP 1.1 に準拠している必要があります。

HTTP 1.1 については、Hypertext Transfer Protocol--HTTP/1.1 仕様 (RFC 2068) を参照してください。サイトは次のとおりです。

http://www.ietf.org/

キャッシュ制御指令を設定するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Cache Control Directives」をクリックします。
  3. 各フィールドに必要事項を入力します。応答指令として有効な値を次に示します。
    • Public: 応答は任意のキャッシュに保存されます。これがデフォルト設定です。
    • Private: 応答は公開されていない (共有ではない) キャッシュにだけ保存されます。
    • No Cache: 応答はどのキャッシュにも保存できません。
    • No Store: 不揮発性記憶装置にあるキャッシュに要求や応答を保存できません。
    • Must Revalidate: キャッシュのエントリは発信元サーバーから再検証される必要があります。
    • Maximum Age (sec): クライアントは、ここで設定された経過時間よりも長い経過時間がたった応答を受け入れません。
  4. 「OK」をクリックします。

詳細は、「Cache Control Directives」のオンラインヘルプを参照してください。


強固な暗号の使用

強固な暗号の設定については、「Stronger Ciphers の設定」を参照してください。


コンテンツを圧縮するためのサーバー設定

Sun ONE Web Server 6.1 は、HTTP コンテンツの圧縮をサポートしています。コンテンツを圧縮することで、ハードウェアに負担をかけることなくクライアントへの配信速度を向上し、コンテンツのボリュームを増やすことができます。コンテンツを圧縮すると、コンテンツのダウンロード時間が短縮されます。これは、ダイヤルアップ接続や、高トラフィックの接続を利用するユーザーにとって大きな利点となります。

コンテンツを圧縮した場合、Web サーバーは圧縮されたデータを送信し、そのデータを直ちに展開 (解凍) するようにブラウザに指示を出します。このため、送信するデータの容量が減り、ページの表示速度が速くなります。

圧縮されたデータの処理について、サーバーに次の 2 つの方法を設定できます。

サーバーの圧縮処理機能の拡張については、「圧縮に関連する obj.conf 内の変更」を参照してください。

事前に圧縮したコンテンツを配信するようにサーバーを設定する

ファイルの圧縮バージョンを事前に生成し、それを指定のディレクトリに格納するように Sun ONE Web Server を設定することができます。このように設定した場合、また、Accept-encoding:gzip ヘッダーを受信した場合に限り、圧縮済みコンテンツを保存するように設定されているディレクトリに格納されているファイルに対するすべての要求は、そのディレクトリに該当する圧縮済みファイルが実際に存在すれば、その圧縮済みファイルへの要求となります。たとえば、Web サーバーが myfile.html に対する要求を受信し、myfile.html と圧縮ファイル myfile.html.gz の両方が存在する場合、適切な Accept-encoding ヘッダーが含まれていればこれらの要求に対して、圧縮されたファイルが返されます。

事前に圧縮されたコンテンツを配信するようにサーバーを設定するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Serve Precompressed Content」をクリックします。
  3. 次の情報を入力します。
    • Editing: 事前に圧縮されたコンテンツの配信元となるリソースをドロップダウンリストから選択します。ディレクトリを選択する場合、サーバーはそのディレクトリまたはそのディレクトリ内のファイルの URL を受信したときにだけ圧縮済みのコンテンツを提供します。
    • 「Browse」ボタンをクリックしてプライマリドキュメントディレクトリを参照するか、「Wildcard」ボタンをクリックしてワイルドカードパターンを指定します。ワイルドカードパターンの使用法については、「リソースピッカーで使用するワイルドカード」を参照してください。

    • Activate Serving Precompressed Content?: 選択したリソースの圧縮されたコンテンツを配信するようにサーバーを設定できます。
    • Check Age: 圧縮されたバージョンが圧縮されていないバージョンより古いかどうかの確認するかどうかを指定します。yes または no を指定できます。
    • yes に設定すると、圧縮バージョンが圧縮されていないバージョンより古い場合に圧縮バージョンは選択されません。

      no に設定すると、圧縮バージョンが圧縮されていないバージョンより古い場合でも、常に圧縮バージョンが選択されます。

      デフォルトでは、yes に設定されています。

    • Vary Header: Vary:Accept-encoding ヘッダーを使用するかどうかを指定します。yes または no を選択します。
    • yes に設定すると、ファイルの圧縮バージョンが選択された場合は常に Vary:Accept-encoding ヘッダーが挿入されます。

      no に設定すると、Vary:Accept-encoding ヘッダーは挿入されません。

      デフォルトでは、yes に設定されています。

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

コンテンツをオンデマンドで圧縮するようにサーバーを設定する

転送データを直ちに圧縮するように Sun ONE Web Server 6.1 を設定することもできます。ダイナミックに生成される HTML ページは、ユーザーがそれを要求するまで存在しません。これは、電子商取引を行う Web アプリケーションや、データベースを多用するサイトで特に便利です。

コンテンツをオンデマンドで圧縮するようにサーバーを設定するには、次の手順に従います。

  1. クラスマネージャの「Content Mgmt」タブをクリックします。
  2. 「Compress Content On Demand」をクリックします。
  3. 次の情報を入力します。
    • Editing: オンデマンドで圧縮されるコンテンツをダイナミックに配信するリソースをドロップダウンリストから選択します。ディレクトリを選択する場合、サーバーはそのディレクトリまたはそのディレクトリ内のファイルの URL を受信したときにだけ圧縮したコンテンツを提供します。
    • 「Browse」ボタンをクリックしてプライマリドキュメントディレクトリを参照するか、「Wildcard」ボタンをクリックしてワイルドカードパターンを指定します。ワイルドカードパターンの使用法については、「リソースピッカーで使用するワイルドカード」を参照してください。

    • Activate Compress Content on Demand?: サーバーが、選択したリソースの圧縮コンテンツを配信するかどうかを選択します。
    • Vary Header: Vary:Accept-encoding ヘッダーを挿入するかどうかを指定します。yes または no を選択します。
    • yes に設定すると、ファイルの圧縮バージョンが選択された場合は常に Vary:Accept-encoding ヘッダーが挿入されます。

      no に設定すると、Vary:Accept-encoding ヘッダーは挿入されません。

      デフォルトでは、yes に設定されています。

    • Fragment Size: 圧縮ライブラリ (zlib) が一度に圧縮する量を制御するために使用するメモリフラグメントのサイズをバイト単位で指定します。デフォルト値は 8096 です。
    • Compression Level: 圧縮のレベルを指定します。1 〜 9 の値を選択します。値 1 では速度が最高になり、値 9 では圧縮率が最高になります。デフォルト値は、速度と圧縮率の両方を考慮した 6 です。
  4. 「OK」をクリックします。

圧縮に関連する obj.conf 内の変更

サーバーで圧縮を有効にすると、obj.conf ファイルにエントリが追加されます。次に、このエントリの例を示します。

Output fn="insert-filter" filter="http-compression" type="text/*"

圧縮を特定タイプのドキュメントに限定するか、あるいは圧縮されたコンテンツにうまく対応できないブラウザを除外するときは、obj.conf ファイルを編集する必要があります。この処理については、『Sun ONE Web Server 6.1 NSAPI Programmer's Guide』を参照してください。



前へ      目次      索引      次へ     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.