Sun Java System Web Server 7.0 管理ガイド

第 9 章 サーバーコンテンツの管理

この章では、複数の仮想サーバーにわたるコンテンツを構成および管理する方法について説明します。

ドキュメントディレクトリの構成

基本ドキュメントディレクトリ (ドキュメントルートとも呼ばれる) は、リモートクライアントに対して使用可能にするすべてのファイルの格納先となる、中央ディレクトリです。

基本ドキュメントディレクトリ以外にも、ドキュメントディレクトリを作成できます。そうすれば、あるユーザーが、基本ドキュメントルートにアクセスすることなしに、一連のドキュメントを管理できるようになります。

Procedureドキュメントディレクトリを作成する

  1. 構成を選択します。

    構成のリストから構成を選択します。利用可能な構成を取得するには、「構成」タブをクリックします。

  2. 仮想サーバーを選択します。

    新しいドキュメントディレクトリを追加する必要のある仮想サーバーを選択します。選択された構成に設定された仮想サーバーのリストを取得するには、「仮想サーバー」タブをクリックします。

  3. 「コンテンツ処理」>「ドキュメントディレクトリ」タブをクリックします。

  4. 「新規」ボタンをクリックします。下記のパラメータを設定します。

    • URL プレフィックス — ディレクトリにマップする必要のある URI プレフィックス。

    • ディレクトリパス — ドキュメントを格納するための絶対サーバーパスと有効なディレクトリ。


    注 –

    CLI の使用

    CLI 経由でドキュメントディレクトリを作成するには、次のコマンドを実行します。


    wadm> create-document-dir --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 
    --uri-prefix=/config1_uri --directory=../docs1

    CLI リファレンスの create-document-dir(1) を参照してください。


デフォルト 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

Procedureデフォルト MIME タイプを変更する

  1. 構成を選択します。

    構成のリストから構成を選択します。利用可能な構成を取得するには、「構成」タブをクリックします。

  2. 仮想サーバーを選択します。

    選択された構成に設定された仮想サーバーのリストを取得するには、「仮想サーバー」タブをクリックします。

  3. 「コンテンツ処理」>「一般」タブをクリックします。

  4. 「その他」セクションの「デフォルト MIME タイプ」の値を変更します


    注 –

    CLI の使用

    CLI 経由で MIME タイプを作成するには、次のコマンドを実行します。


    wadm> create-mime-type --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1 --extensions=sxc application/sxc

    CLI リファレンスの create-mime-type(1) を参照してください。

    仮想サーバーごとに MIME タイプファイルを作成する必要はありません。代わりに、MIME タイプファイルを必要な数だけ作成し、それらを仮想サーバーに関連付けることができます。サーバー上にはデフォルトで、MIME タイプファイルが 1 つ (mime.types) 存在していますが、このファイルを削除することはできません。


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

ユーザーが自分の Web ページを保守したい場合があります。サーバー上のすべてのユーザーが管理者の介入なしにホームページやその他のドキュメントを作成できるようにするための、公開情報ディレクトリを構成できます。

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

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

Procedureドキュメントディレクトリの構成

  1. 仮想サーバーのページから「コンテンツ処理」タブをクリックします。

  2. 「ドキュメントディレクトリ」をクリックします。

  3. 「ユーザードキュメントディレクトリ」の下でユーザー URL プレフィックスを選択します。

    通常使用されるプレフィックスは ~ です。なぜなら、チルド文字が、ユーザーのホームディレクトリにアクセスするための標準 UNIX/Linux プレフィックスであるからです。

  4. HTML ファイルの検索場所として使用する、ユーザーのホームディレクトリ内のサブディレクトリを選択します。

    典型的なディレクトリは、public_html です。

  5. パスワードファイルを指定します。

    サーバーは、システム上のユーザーのリストを含むファイルをどこで検索すべきかを知る必要があります。サーバーは、このファイルを使用することで、有効なユーザー名を決定し、それらのユーザーのホームディレクトリを見つけます。システムのパスワードファイルをこの目的で使用する場合、サーバーは標準ライブラリ呼び出しを使ってユーザーの検索を行います。あるいは、別のユーザーファイルをユーザー検索用として作成することもできます。そのユーザーファイルは、絶対パスを使って指定できます。

    ファイル内の各行が次の構造になるようにしてください (/etc/passwd ファイル内の不要な要素は * で示してある)。

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

  6. 起動時にパスワードデータベースを読み込むかどうかを選択します。

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

    詳細については、「ユーザードキュメントディレクトリ」ページに対するオンラインヘルプを参照してください。

    ユーザーに個別のディレクトリを割り当てるための、もう 1 つの方法は、すべてのユーザーが変更可能な中央ディレクトリへの URL マッピングを作成することです。

コンテンツ発行の制限

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

jdoe::1234:1234:John Doe:/home/jdoe:/bin/sh

これは次のようになります。

jdoe::1234:1234:John Doe:/home/jdoe/:/bin/sh

この変更が完了すると、Sun Java System Web Server は、このユーザーのディレクトリからページを提供しないようになります。この URI を要求したブラウザは「404 ファイルが見つからない」エラーを受け取り、Web サーバーのアクセスログに 404 エラーが記録されます。エラーログには何のエラーも記録されません。

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

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

パスワードファイルの全体を起動時に読み込むオプションも用意されています。このオプションを選択すると、サーバーが起動時にパスワードファイルをメモリー内に読み込むようになるため、ユーザー検索が大幅に高速化されます。ただし、パスワードファイルが非常に大きい場合にこのオプションを選択すると、メモリー使用量が多くなりすぎる可能性があります。

URL リダイレクションの設定

URL リダイレクションを使えば、ある HTTP URL へのドキュメント要求を別の HTTP URL にリダイレクトできます。URL 転送つまりリダイレクションは、ファイルを別のディレクトリやサーバーに移動したなどの理由により URL が変わったことを、サーバーがユーザーに通知するための手段の 1 つです。リダイレクションを使用すれば、あるサーバー上のドキュメントに対する要求を別のサーバー上のドキュメントにシームレスに送信することもできます。

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

あるサブディレクトリ内のすべてのドキュメントに対する要求を、ある特定の URL にリダイレクトしたい場合があります。たとえば、トラフィックが多すぎた、ドキュメントが何らかの理由で提供できなくなった、などの理由により、ディレクトリを削除しなければいけなかった場合、それらのドキュメントのどれか 1 つに対する要求を、ドキュメントが利用できなくなった理由を説明したページに転送できます。たとえば、/info/movies のプレフィックスを http://www.sun.com/explain.html にリダイレクトできます。

URL リダイレクションの設定は、仮想サーバーレベルで行えます。

URL リダイレクションを構成するには、次の手順を実行します。

  1. 構成」タブをクリックし、構成のリストから構成を選択します。

  2. 仮想サーバー 」サブタブをクリックし、仮想サーバーのリストから仮想サーバーを選択します。

  3. コンテンツ処理 」サブタブ、「URL リダイレクト」サブタブを順次クリックします。

  4. 新規 」ボタンをクリックして新しい URL リダイレクト規則を追加します。

  5. 次の表で説明するフィールドに、必要な値を入力します。「了解」ボタンをクリックします。必要に応じて、構成の「配備」ボタンをクリックしなければいけない可能性があります。

次の表では、新しい URL リダイレクト規則を追加する場合の必須パラメータについて説明します。

表 9–1 URL リダイレクトのパラメータ

パラメータ

説明

リダイレクト元 URL

要求のリダイレクト元となる URL。この URL への HTTP 要求はすべて、「ターゲット URL」で指定された URL にリダイレクトされます。 

ターゲット URL

要求のリダイレクト先となる URL。「リダイレクト元 URL」で指定された URL からの HTTP 要求はすべて、この URL にリダイレクトされます。 

URL タイプ

固定。有効/無効。固定された URL とは、HTML ページへのリンクなど、静的な URL のことです。固定されない URL とは、要求パラメータを持つ動的 URL や、プレフィックスのみを持つ URL のことです。


注 –

CLI の使用

CLI 経由で新しい URL リダイレクション規則を追加するには、次のコマンドを実行します。


wadm> create-url-redirect --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --no-ssl --config=config1 --vs=config1_vs_1 --uri-prefix=/redirect 
--target-url=http://www.cnet.com

CLI リファレンスの create-url-redirect(1) を参照してください。


正規表現を使用した URL リダイレクション

Sun Java System Web Server 7.0 は、正規表現 (パターンとも呼ばれる) と、要求時にパラメータを構成ファイルに挿入する機能をサポートするように拡張されています。さらに、ワイルドカードパターンマッチングのサポートが、server.xml にまで拡張されています。URL リダイレクションは SAF として実装されています。リダイレクト SAF を使えば、ある特定のプレフィックスに一致する URI をリダイレクトできます。プレフィックスは from パラメータを使って、リダイレクト先の URL は url または url-prefix パラメータを使って、それぞれ指定できます。Sun Java System Web Server 7.0 では、from パラメータは省略可能です。from を省略すると、すべての URI がリダイレクトされます。

obj.conf ファイル内の SAF パラメータでは、新しいタグ <If><Elseif>、および <Else> がサポートされています。付録 - obj.conf - 構文と使用法を参照してください。これらのタグには指令が含まれます。これらのタグを使えば、指令の実行条件を定義できます。また、これらのタグは、SAF パラメータを動的に生成するために使用することもできます。

Sun Java System Web Server 7.0 が提供する URL 書き換え機能は、Apache HTTP サーバーの mod_rewrite モジュールのスーパーセットになっています。<If> タグは Apache の mod_rewrite 機能とは異なり、次の機能を提供します。

次のような指令があるとします。


NameTrans fn="redirect"
          	      from="/site1"
                 url="http://site1.mycompany.com"

この指令は、正規表現を使って次のように書き換えられます。


<If $uri =~ '^/site1'>
           NameTrans fn="redirect"
           url="http://site1.mycompany.com"
</If>

このコードでは、from パラメータの代わりに正規表現が使用されています。/site1/* に対するすべての要求を、http://site1.mycompany.com/*/index.html にリダイレクトする必要がある場合には、次のテクニックを検討してください。


<If $uri =~ '^/site1/(.*)'>
           NameTrans fn="redirect"
           url="http://site1.mycompany.com/$1/index.html"
</If>

この場合、<If> タグによって、(.*) に一致する値が何であれ、その値が変数 $1 に代入されます。url パラメータの $1 は、元の要求からの値で動的に置換されます。つまり、上記の obj.conf コードによって、/site1/download に対する要求が http://site1.mycompany.com.com/download/index.html にリダイレクトされます。

<If>redirect の組み合わせれば、mod_rewrite の柔軟性の一部を実現できます。ただし、<If>mod_rewrite とは異なり、URL のリダイレクションや書き換え以外の用途にも使用できます。<If> は、他社製プラグインを含む任意の SAF と組み合わせて使用することもできます。

上記の方法では、302 一時的に移動リダイレクトが構成されます。Sun Java System Web Server 7.0 では、status="301" パラメータを追加することで、301 永久に移動リダイレクトを代わりに必要としていることを示すこともできます。


NameTrans fn="redirect" from="/path" url="http://server.example.com" status="301"

CGI の概要

CGI (Common Gateway Interface) プログラムは、任意の数のプログラミング言語を使って定義できます。UNIX/Linux マシン上にはおそらく、Bourne シェルや Perl スクリプトとして記述された CGI プログラムが存在しています。


注 –

UNIX/Linux の下ではさらに CGIStub プロセスも実行されますが、これらは、サーバーが CGI 実行の支援用として使用するものです。これらのプロセスは、CGI への初回アクセス時にのみ作成されます。その個数は、サーバーでの CGI 負荷に応じて変わります。これらの CGIStub プロセスを終了しないでください。これらはサーバー停止時に削除されます。


詳細については、オンラインの『Sun Java System Web Server パフォーマンスのチューニング、サイジング、およびスケーリング』に含まれている、MinCGIStub MaxCGIStub、および CGIStubIdleTimeout に関する説明を参照してください。

Windows コンピュータにはおそらく、C++ またはバッチファイルで記述された CGI プログラムが存在しています。Windows の場合、Visual Basic などの Windows ベースのプログラミング言語で記述された CGI プログラムは、異なる機構を使ってサーバーとの連携動作を行います。これらは Windows CGI プログラムと呼ばれます。


注 –

コマンド行ユーティリティーを実行するには、Path 変数を手動で設定して server_root/bin/https/bin を含める必要があります。


プログラミング言語にかかわらず、データを受け取ったり返したりする方法は、どの CGI プログラムでも同じです。CGI プログラムの記述方法については、次の情報源を参照してください。

次の図は、Web Server 7.0 での CGI 要求の処理手順を示したものです。

Sun Java System Web Server 7.0

CGI プログラムをサーバーマシンに格納する方法は 2 つあります。

必要であれば、両方のオプションを同時に有効にすることも可能です。

どちらの実装にも利点があります。ある特定のユーザーグループだけが CGI プログラムを追加できるようにするには、CGI プログラムを特定のディレクトリ内に格納し、それらのディレクトリへのアクセスを制限します。HTML ファイルを追加できるすべてのユーザーが CGI プログラムも追加できるようにするには、ファイルタイプの選択肢を使用します。ユーザーは、HTML ファイルと同じディレクトリ内に CGI ファイルを格納できます。

ディレクトリのオプションが選択されると、サーバーはそのディレクトリ内のすべてのファイルを CGI プログラムとして解釈しようとします。同様に、ファイルタイプのオプションが選択されると、サーバーは、ファイル拡張子 .cgi.exe、または .bat を持つファイルをすべて、CGI プログラムとして処理しようとします。あるファイルがこれらの拡張子を持つにもかかわらず、CGI プログラムではなかった場合、ユーザーがそのファイルにアクセスしようとした時点でエラーが発生します。


注 –

デフォルトでは、CGI プログラムのファイル拡張子は .cgi.exe、および .bat. です。ただし、MIME タイプファイルを変更すれば、CGI プログラムを表す拡張子を変更できます。これを行うには、「構成」タブを選択し、「MIME タイプ」リンクをクリックします。


サーバーの CGI サブシステムの構成

Sun Java System Web Server では、管理コンソール GUI を使って CGI ドキュメントディレクトリを追加できます。

新しい CGI ドキュメントディレクトリを追加するには、次のタスクを実行します。

  1. 構成」タブをクリックし、構成のリストから構成を選択します。

  2. 仮想サーバー 」サブタブをクリックし、仮想サーバーのリストから仮想サーバーを選択します。

  3. コンテンツ処理 」サブタブ、「CGI」サブタブを順次クリックします。

  4. 新規 」ボタンをクリックして新しい CGI ドキュメントディレクトリを追加します。

  5. 次の表で説明するフィールドに、必要な値を入力します。「了解」ボタンをクリックします。必要に応じて、構成の「配備」ボタンをクリックしなければいけない可能性があります。

次の表では、新しい CGI ドキュメントディレクトリを追加する場合の必須フィールドについて説明します。

表 9–2 CGI パラメータ

パラメータ

説明

プレフィックス 

このディレクトリに対して使用する URL プレフィックスを入力します。つまり、ここで入力したテキストが、CGI プログラムのディレクトリとして URL 内に現れます。 

たとえば、cgi-bin を URL プレフィックスとして入力した場合、これらの CGI プログラムへの URL はすべて、次の構造を持ちます。

http://yourserver.domain.com /cgi-bin/program-name

CGI ディレクトリ 

「CGI ディレクトリ」テキストフィールドには、ディレクトリの場所を絶対パスで入力します。このディレクトリはドキュメントルートの下になくてもかまわないことに注意してください。これが、URL プレフィックスを指定する必要がある理由です。 


注 –

ユーザーが指定する URL プレフィックスは、実際の CGI ディレクトリと異なっていてもかまいません。


ユーザー 

CGI プログラムの実行時に使用するユーザーの名前を指定します。 

グループ 

CGI プログラムの実行時に使用するグループの名前を指定します。 

ディレクトリ変更 

実行開始前のディレクトリ変更先となるディレクトリを指定します。 

優先順位 

優先順位値、つまり CGI プログラムの優先順位を決定する、サーバーからの相対的な増分を指定します。 

通常、サーバーは優先順位値 0 で実行され、優先順位の増分は、0 (CGI プログラムがサーバーと同じ優先順位で実行される) から 19 (CGI プログラムがサーバーよりも大幅に低い優先順位で実行される) までになります。CGI プログラムの優先順位をサーバーの優先順位よりも上げるために優先順位の増分に -1 を指定することも可能ですが、これはお勧めできません。 

既存の CGI ディレクトリを削除するには、CGI ディレクトリを選択し、「削除」ボタンをクリックします。既存のディレクトリの URL プレフィックスや CGI ディレクトリを変更するには、そのディレクトリのリンクをクリックします。

指定したディレクトリ内に CGI プログラムをコピーします。これらのディレクトリ内のファイルはすべて CGI ファイルとして処理されるため、HTML ファイルを CGI ディレクトリに格納しないでください。

CGI をファイルタイプとして指定するには、次のタスクを実行します。

  1. 構成」タブをクリックし、構成のリストから構成を選択します。

  2. 仮想サーバー 」サブタブをクリックし、仮想サーバーのリストから仮想サーバーを選択します。

  3. コンテンツ処理 」サブタブ、「CGI」サブタブを順次クリックします。

  4. ファイルタイプとしての CGI 」ラジオボックスをクリックして有効にします。

CGI ファイルはファイル拡張子 .bat.exe、または .cgi を持つ必要があります。CGI ファイルでなくてもこれらの拡張子を持っていれば、サーバーによって CGI ファイルとして処理されるため、エラーが発生します。


注 –

CLI の使用

サーバーによって処理される CGI プログラムを格納する CGI ディレクトリを作成できます。CGI プログラムは、.cgi や .exe、.bat といった特定のファイルタイプを持ちます。ドキュメントルートディレクトリの中またはその下にある任意のディレクトリに、プログラムを格納できます。

CLI 経由で CGI ディレクトリを追加するには、次のコマンドを実行します。


wadm> create-cgi-dir --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 --vs=config1_vs_1 --uri-prefix=/config1_urlprefix 
--directory=/cgi-dir

CLI リファレンスの create-cgi-dir(1) を参照してください。


実行可能ファイルのダウンロード

.exe を CGI ファイルタイプとして使用している場合、.exe ファイルを実行可能ファイルとしてダウンロードすることはできません。

この問題の解決方法の 1 つは、ユーザーがダウンロードできるようにする実行可能ファイルを圧縮することです。そうすれば、拡張子が .exe でなくなります。この解決方法には、ダウンロード時間が短縮されるという利点もあります。

もう 1 つの選択可能な解決方法は、ファイル拡張子としての .exemagnus-internal/cgi タイプから削除し、代わりに application/octet-stream タイプ (通常のダウンロード可能ファイル用の MIME タイプ) に追加することです。サーバーマネージャーからこれを行うには、「構成」タブを選択し、「MIME タイプ」リンクをクリックします。ただし、この方法には欠点があります。それは、この変更を行うと、.exe ファイルを CGI プログラムとして使用できなくなる、という点です。

もう 1 つの解決方法は、サーバーの obj.conf ファイルを編集してダウンロードディレクトリを設定することです。そうすれば、そのディレクトリ内のすべてのファイルが自動的にダウンロードされるようになります。サーバーのほかの部分に影響を及ぼすことはありません。詳細については、次を参照してください。

http://developer.netscape.com/docs/manuals/enterprise/admnunix/programs.htm

Windows 用シェル CGI プログラムのインストール

Windows 用シェル CGI プログラムの概要

シェル CGI とは、Windows で設定されたファイル関連付けを使って CGI アプリケーションを実行できるようにするサーバー構成です。

たとえば、サーバーは、hello.pl という名前のシェル CGI ファイルの要求を受け取ると、Windows のファイル関連付けを使って、具体的には .pl 拡張子に関連付けられたプログラムを使って、そのファイルを実行します。.pl 拡張子がプログラム C:\\bin\\perl.exe に関連付けられていた場合、サーバーは hello.pl ファイルを次のようにして実行しようとします。

c:\\bin\\perl.exe hello.pl

シェル CGI を設定するもっとも簡単な方法は、サーバーのドキュメントルート内に、シェル CGI ファイルだけを格納するディレクトリを作成することです。ただし、サーバーを構成して特定のファイル拡張子をシェル CGI に関連付けることもできます。それには、Sun ONE Web Server から MIME タイプを編集します。


注 –

Windows のファイル拡張子の設定方法については、Windows のドキュメントを参照してください。


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

仮想サーバーでのエラー発生時にクライアントに詳細メッセージを送信するための、カスタムのエラー応答を指定できます。送信するファイル、実行する CGI プログラムのいずれかを指定できます。

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

カスタムエラー応答を有効にするには、まず、エラーへの応答として、送信する HTML ファイル、実行する CGI プログラムのいずれかを作成する必要があります。

カスタムエラーページを追加するには、次の手順に従います。

  1. 構成」タブをクリックし、構成のリストから構成を選択します。

  2. 仮想サーバー 」サブタブをクリックし、仮想サーバーのリストから仮想サーバーを選択します。

  3. コンテンツ処理 」サブタブ、「エラーページ」サブタブを順次クリックします。

  4. 新規」ボタンをクリックしてカスタムエラーページを追加します。

    変更するエラーコードごとに、エラー応答が格納されたファイルまたは CGI への絶対パスを指定します。

  5. 了解」をクリックしてエラーページのリストに戻ります。


注 –

CLI の使用

CLI 経由でエラーページをカスタマイズするには、次のコマンドを実行します。


wadm> set-error-page --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 --vs=config1_vs_1 --code=500 
--error-page=/server-error-uri-new 

CLI リファレンスの set-error-page(1) を参照してください。


文字セットの変更

ドキュメントの文字セットの決定要因の 1 つは、その記述に使われている言語です。1 つのドキュメント、一連のドキュメント、または 1 つのディレクトリに対するクライアントのデフォルト文字セット設定を上書きするには、あるリソースを選択し、そのリソースの文字セットを入力します。

ほとんどのブラウザは、HTTP に含まれる MIME タイプの charset パラメータに基づいて自身の文字セットを変更できます。サーバーがこのパラメータを応答に含めると、ブラウザはそれに応じて自身の文字セットを変更します。次に例を示します。

次の charset 名は一般的なブラウザの一部で認識されますが、これらは RFC 17.000 で規定されたものです (ただし、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

  • us

  • ibm367.0

  • cp367.0

 

iso_8859-1 では次の別名が認識されます。

  • latin1

  • iso_8859-1

  • iso_8859-1:1987.0

  • iso-ir-100

  • ibm819

  • cp819

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

Procedure文字セットの変更

  1. 仮想サーバーのページから「コンテンツ処理」タブをクリックします。

  2. 「一般」タブをクリックします。

  3. 「その他」セクションでデフォルト文字セットを設定します。

    このフィールドを空白のままにすると、文字セットが「なし」に設定されます。

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

ドキュメントフッターの設定

サーバーのある特定のセクション内のすべてのドキュメントに対し、ドキュメントフッターを指定できます。このフッターには最終更新時刻を含めることができます。このフッターは、CGI スクリプトの出力と解析対象 HTML (.shtml) ファイルを除く、すべてのファイルで機能します。CGI スクリプトの出力や解析対象 HTML ファイルにドキュメントフッターを表示させる必要がある場合には、そのフッターテキストを別のファイルに入力したあと、コード行または別のサーバー側インクルードを追加することで、そのファイルがページ出力の末尾に追加されるようにします。

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

Procedureドキュメントフッターを設定する

  1. 仮想サーバーのページから「コンテンツ処理」タブをクリックします。

  2. 「一般」サブタブをクリックし、「ドキュメントフッター」セクションに移動します。

  3. フッターを含めるファイルのタイプを指定します。

  4. 日付の形式を指定します。

  5. フッターに表示させる任意のテキストを入力します。

    ドキュメントフッターの最大文字数は 7,065 です。ドキュメントの最終更新日付を含めるには、文字列 :LASTMOD: を入力します。

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


    注 –

    CLI の使用

    CLI 経由でドキュメントフッターを設定するには、次のコマンドを実行します。


    wadm> enable-document-footer --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 
    --mime-type=text/html --date-format=%B --footer="config1 footer"

    CLI リファレンスの enable-document-footer(1) を参照してください。


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

サーバーでのファイルシステムリンクの使用を制限できます。ファイルシステムリンクとは、ほかのディレクトリまたはファイルシステム内のファイルへの参照のことです。参照を使えば、リモートファイルがまるで現在のディレクトリ内に存在するかのように、リモートファイルにアクセスできるようになります。次の 2 種類のファイルシステムリンクが存在します。

ハードリンクとシンボリックリンクの詳細については、UNIX/Linux システムのドキュメントを参照してください。

ファイルシステムリンクを使えば、基本ドキュメントディレクトリの外側にあるドキュメントへのポインタを簡単に作成できますが、そうしたリンクは誰でも作成できます。このため、機密ドキュメントやシステムパスワードファイルといった機密性のあるファイルへのポインタをユーザーが作成してしまう心配が生じます。

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

Procedureシンボリックリンクを制限する

  1. 仮想サーバーのページから「コンテンツ処理」タブをクリックします。

  2. 「一般」サブタブをクリックします。

  3. 「その他」セクションの下にある「シンボリックリンク」セクションに移動します。

  4. ソフトリンクまたはハードリンクあるいはその両方を有効にするかどうかと、その起動元ディレクトリを選択します。

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


    注 –

    CLI の使用

    CLI 経由でシンボリックリンクを制限するには、次のコマンドを実行します。


    wadm> set-symlinks-prop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 
    allow-soft-links=true allow-hard-links=false directory=/abc

    CLI リファレンスの set-symlinks-prop(1) を参照してください。


サーバーにより解析される HTML の設定

HTML は通常、サーバーが介入することなしに、ディスク上に存在する状態のままでクライアントに送信されます。ところがサーバーは、ドキュメントを送信する前に、HTML ファイル内で特殊なコマンドを検索する、つまり HTML を解析することができます。サーバーがこれらのファイルを解析し、要求に固有の情報やファイルをドキュメント内に挿入するようにするには、まず HTML の解析機能を有効にする必要があります。

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

Procedureサーバーにより解析される HTML を設定する

  1. 仮想サーバーのページから「コンテンツ処理」タブをクリックします。

  2. 「一般」サブタブをクリックします。

  3. 「解析対象 HTML/SSI 設定」で、サーバーにより解析される HTML を有効にするかどうかを選択します。

    HTML ファイルで有効にするが exec タグでは有効にしないこともできますし、HTML ファイルでも exec タグでも有効にすることもできます。後者の場合、HTML ファイルがサーバー上のほかのプログラムを実行できるようになります。

  4. 解析対象ファイルを選択します。

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

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

    サーバーにより解析される HTML の使用方法の詳細については、『Sun Java System Web Server Developer’s Guide.』を参照してください。


    注 –

    CLI の使用

    CLI 経由でサーバーにより解析される HTML を設定するには、次のコマンドを実行します。


    wadm> enable-parsed-html --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs1

    CLI リファレンスの enable-parsed-html(1) を参照してください。


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

キャッシュ制御指令は、Sun Java System Web Server がプロキシサーバーのキャッシュにどの情報を書き込むかを制御するための方法の 1 つです。キャッシュ制御指令を使えば、プロキシのデフォルトキャッシュを上書きすることで、機密情報がキャッシュに書き込まれ、あとでおそらく読み出されるのを防ぐことができます。この指令を利用するには、プロキシサーバーが HTTP 1.1 に準拠している必要があります。

HTTP 1.1 の詳細については、次の「Hypertext Transfer Protocol--HTTP/1.1」仕様 (RFC 2068) を参照してください。

http://www.ietf.org/

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

Procedureキャッシュ制御指令を設定する

  1. 仮想サーバーのページから「コンテンツ処理」タブをクリックします。

  2. 「一般」サブタブをクリックし、「その他」セクションの「キャッシュ制御指令」フィールドに移動します。

  3. 各フィールドに値を入力します。応答指令の有効な値は、次のとおりです。

    • 公開:任意のキャッシュに応答を書き込めます。これは標準設定です。

      • 非公開:非公開 (非共有) キャッシュにしか応答を書き込めません。

      • キャッシュなし:どのキャッシュにも応答を書き込めません。

      • ストアなし:キャッシュは、要求または応答を非揮発性記憶領域のどこにも格納できません。

      • 再検証が必要:元のサーバーに基づいてキャッシュエントリを再検証する必要があります。

      • 最大継続時間 (秒):クライアントは、この継続時間よりも大きな継続時間を持つ応答を受け取りません。

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


    注 –

    CLI の使用

    CLI 経由でキャッシュ制御指令を設定するには、次のコマンドを実行します。


    wadm> set-cache-control-directives --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 public=true 
    private=true must-revalidate=true

    CLI リファレンスの set-cache-control-directives(1) を参照してください。


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

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

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

事前に圧縮されたコンテンツを提供するためのサーバー構成

ある指定されたディレクトリで、事前に圧縮されたバージョンのファイルを生成して格納するように、Sun Java System Web Server を構成できます。そのように構成され、かつ Accept-encoding: gzip ヘッダーが受信された場合にのみ、事前に圧縮されたコンテンツを提供するように構成されたディレクトリ内のファイルへのすべての要求が、そのディレクトリ内のそれと同等な圧縮済みファイルへの要求にリダイレクトされます。ただしそれには、そのようなファイルが存在している必要があります。たとえば、Web サーバーが myfile.html の要求を受信し、かつ myfile.htmlmyfile.html.gz がどちらも存在していた場合、それらの要求に適切な Accept-encoding ヘッダーが含まれていれば、圧縮されたファイルが送信されます。

事前に圧縮されたコンテンツを提供するようにサーバーを構成するには、次の手順を実行します。

Procedure事前に圧縮されたコンテンツの設定を変更する

  1. 仮想サーバーのページから「コンテンツ管理」タブをクリックします。

  2. 「一般」サブタブをクリックします。

  3. 「圧縮」>「事前に圧縮されたコンテンツ」セクションに移動し、次のオプションから選択します。

    • 事前に圧縮されたコンテンツ — 有効化/無効化。選択されたリソースに対して事前に圧縮されたコンテンツを提供するように、サーバーに指示できるようにします。

    • 経過時間チェック — 圧縮版が非圧縮版より古いかどうかをチェックするかどうかを指定します。

      これを選択すると、圧縮版が非圧縮版より古い場合に圧縮版が選択されません。

      これを選択しないと、圧縮版が非圧縮版より古い場合でも圧縮版が常に選択されます。

    • Vary ヘッダーを挿入Vary: Accept-encoding ヘッダーを使用するかどうかを指定します。

      これを選択すると、圧縮版のファイルが選択されたときに Vary: Accept-encoding ヘッダーが常に挿入されます。

      これを選択しないと、Vary: Accept-encoding ヘッダーは挿入されません。

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

コンテンツをオンデマンドで圧縮するためのサーバー設定

転送データを動的に圧縮するように Sun Java System Web Server 7.0 を構成することもできます。動的に生成される HTML ページは、ユーザーがそれを要求するまで生成されません。これは特に、電子商取引ベースの Web アプリケーションやデータベース駆動型のサイトで役立ちます。

オンデマンドでコンテンツを圧縮するようにサーバーを構成するには、次の手順を実行します。

Procedureオンデマンドでコンテンツを圧縮する

  1. 仮想サーバーのページから「コンテンツ処理」タブをクリックします。

  2. 「一般」サブタブをクリックします。「圧縮」セクションの「オンデマンドのコンテンツ圧縮」セクションに移動します。

  3. 次のオプションがあります。

    • オンデマンド圧縮 — 選択されたリソースのオンデマンド圧縮を有効化/無効化します。

    • Vary ヘッダーを挿入Vary: Accept-encoding ヘッダーを挿入するかどうかを指定します。

      これを選択すると、圧縮版のファイルが選択されたときに Vary: Accept-encoding ヘッダーが常に挿入されます。

      これを選択しないと、Vary: Accept-encoding ヘッダーは挿入されません。

    • フラグメントサイズ — 圧縮ライブラリ (zlib) が一度に圧縮する分量を制御するために使用する、メモリーのフラグメントサイズをバイトで指定します。デフォルト値は 8096 です。

    • 圧縮レベル — 圧縮のレベルを指定します。1 〜 9 の値を選択します。値 1 では速度が最高になり、値 9 では圧縮率が最高になります。デフォルト値は、速度と圧縮率の両方を考慮した 6 です。

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


    注 –

    CLI の使用

    CLI 経由でオンデマンド圧縮を有効にするには、次のコマンドを実行します。


    wadm> enable-on-demand-compression --user=admin 
    --password-file=admin.pwd --host=serverhost --port=8989 --config=config1 
    --vs=config1_vs_1 --insertvaryheader=true 
    --fragment-size=100 --compression-level=5

    CLI リファレンスの enable-on-demand-compression(1) を参照してください。


逆プロキシの構成

逆プロキシとは、クライアントからは Web サーバー (元のサーバー) のように見えるが、実際には受信した要求を 1 つ以上の元のサーバーに転送するようなプロキシのことです。逆プロキシは自身を元のサーバーとして提示するため、逆プロキシを使用するようにクライアントを構成する必要はありません。ある特定の逆プロキシを、同様に構成された複数の元のサーバーに要求を転送するように構成すれば、その逆プロキシは、アプリケーションレベルのソフトウェアロードバランサとしての役割を果たすことができます。


注 –

典型的な配備では、ブラウザと元のサーバーとの間に逆プロキシが 1 つ以上配備されます。


Procedureプロキシ URI を追加する

  1. 「構成」タブをクリックし、構成を選択します。

  2. 「仮想サーバー」タブをクリックし、仮想サーバーを選択します。

  3. 「コンテンツ処理」>「逆プロキシ」タブをクリックします。

  4. 「新規プロキシ URI 」ボタンをクリックします。

    次の各パラメータの値を指定します。

    • URI — 逆プロキシの URI

    • サーバー URL — リモートサーバーの URL をコンマで区切ったもの。複数の値が指定された場合、サーバーはその指定されたサーバー間で負荷分散を行います。

Procedure逆プロキシのパラメータを変更する

  1. 「構成」タブをクリックし、構成を選択します。

  2. 「仮想サーバー」タブをクリックし、仮想サーバーを選択します。

  3. 「コンテンツ処理」>「逆プロキシ」タブをクリックします。

  4. URI をクリックします。

    次のパラメータを編集できます。

    • URI — 逆プロキシの URI

    • サーバー URL — リモートサーバーの URL をコンマで区切ったもの。複数の値が指定された場合、サーバーはその指定されたサーバー間で負荷分散を行います。

    • Sticky Cookie — Cookie の名前。この Cookie が応答に含まれていると、後続の要求がその元のサーバーに固定されます。

    • Sticky URI パラメータ — ルート情報を調べる URI パラメータの名前。要求 URI にこの URI パラメータが含まれていて、かつその値にコロン「:」とルート ID が含まれていると、そのルート ID で特定される元のサーバーに要求が「固定」されます。

    • ルートヘッダー — 元のサーバーにルート ID を伝えるために使用される HTTP 要求ヘッダーの名前。

    • ルート Cookie — サーバーが応答内で sticky-cookie Cookie を検出したときに生成する Cookie の名前。route-cookie Cookie に格納されたルート ID を使えば、サーバーは後続の要求を同じ元のサーバーに転送できます。


    注 –

    CLI の使用

    1. create-reverse-proxy コマンドを呼び出します。


    wadm> create-reverse-proxy --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=test --vs=test --uri-prefix=// 
    --server=http://rick.india.sun.com:8080

    CLI リファレンスの create-reverse-proxy(1) を参照してください。

    2. obj.conf ファイルを変更します。


    NameTrans fn="map" from="/" name="reverse-proxy-/" to="http:/"
    ...
    <Object name="reverse-proxy-/">
    Route fn="set-origin-server" server="http://rick.india.sun.com:8080"
    </Object>
    
    <Object ppath="http:*">
    Service fn="proxy-retrieve" method="*"
    </Object>

    セキュリティー保護されたサイトにリダイレクトするには、同じ手順に従い、--server オプションで https アドレスを指定します。


P3P の設定

P3P (Platform for Privacy Preferences) を使えば、Web サイトは自身のプライバシ運用規定を、ユーザーエージェントが自動的に取得して簡単に解釈できるような標準形式で表明することができます。P3P ユーザーエージェントを使えば、ユーザーは、サイトの運用規定を (マシン可読、人間可読の両形式で) 通知されます。詳細については、http://www.w3.org/P3P/ を参照してください。

Procedure仮想サーバーの P3P 設定の構成

  1. 構成を選択します。

    構成のリストから構成を選択します。利用可能な構成のリストを取得するには、「構成」タブをクリックします。

  2. 仮想サーバーを選択します。

    仮想サーバーのリストから仮想サーバーを選択します。選択された構成で利用可能な仮想サーバーを取得するには、「仮想サーバー」タブをクリックします。

  3. 「一般」タブをクリックします。「P3P」セクションで次の設定を構成します。

    • 有効 — 選択された仮想サーバーで P3P を有効にします。

    • ポリシー URL関連する P3P ポリシーファイルの場所を入力します。

    • コンパクトポリシーコンパクトポリシーは、ユーザーエージェント (ブラウザまたはその他の P3P アプリケーション) にヒントを提供することで、そのユーザーエージェントが、ポリシーの適用に関する判断をすばやく同期の取れたかたちで下せるようにします。コンパクトポリシーはパフォーマンスを最適化するためのものであり、P3P 仕様によれば、ユーザーエージェント、サーバーのいずれかのオプションとして提供されています。


    注 –

    CLI の使用

    仮想サーバーの P3P を有効にするには、次のコマンドを実行します。


    wadm> enable-p3p --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1 --vs=config1_vs_1 --policy-url=http://xyz.com/policyurl

    CLI リファレンスの enable-p3p(1) を参照してください。