前へ     目次     索引     DocHome     次へ     
iPlanet Web Server, Enterprise Edition NSAPI プログラマーズガイド



第 3 章   事前定義済みの SAF および要求処理プロセス


この章では、obj.conf ファイル内でサーバに指示を与えるために使われる、標準の指令と事前定義済みのサーバアプリケーション関数 (SAF) を説明します。obj.conf の使い方と構文の詳細は、前の章、第 2 章「obj.conf の構文と使用法」を参照してください。

Init (初期設定) SAF のリストは、第 7 章「magnus.conf の構文と使用法」を参照してください。

この章には、iPlanet Web Server の主要機能の一部である関数も記載しています。この章では、サーブレットおよびサーバが構文解析する HTML などの追加のコンポーネントが有効な場合のみ利用できる関数については、記載していません。

この章では、各指令の節を設けて説明しています。それぞれの節には、該当の指令とともに使用できるすべての事前定義済みのサーバアプリケーション関数のリストがあります。

指令には次のものがあります。

事前定義済みの SAF のアルファベット順のリストは、付録 H「magnus.conf 内の指令のアルファベット順リスト」を参照してください。

表 3-1 は、各指令とともに使用できる SAF のリストです。


表 3-1 指令ごとの利用可能なサーバアプリケーション関数 (SAF) 

AuthTrans 段階  

basic-auth
basic-ncsa
get-sslid
qos-handler
 

NameTrans 段階  

assign-name
document-root
home-page
pfx2dir
redirect
strip-params
unix-home
 

PathCheck 段階  

check-acl
deny-existence
find-index
find-links
find-pathinfo
get-client-cert
load-config
nt-uri-clean
ntcgicheck
require-auth
set-virtual-index
ssl-check
ssl-logout
unix-uri-clean
 

ObjectType 段階  

force-type
set-default-type
shtml-hacktype
type-by-exp
type-by-extension
 

Service 段階  

add-footer
add-header
append-trailer
imagemap
index-common
index-simple
key-toosmall
list-dir
make-dir
query-handler
remove-dir
remove-file
rename-file
send-cgi
send-file
send-range
send-shellcgi
send-wincgi
service-dump
shtml_send
stats-xml
upload-file
 

AddLog 段階  

common-log
flex-log
record-useragent
 

Error 段階  

send-error
qos-error
 



バケットパラメータ



iPlanet Web Server では、次のパフォーマンスバケットが事前に定義されています。

  • default-bucket は、ユーザが定義したバケットまたは組み込みのバケットと関連しない関数の統計情報を記録します。

  • all-requests バケットは、default-bucket.perf 統計を含むすべての NSAPI SAF の .perf 統計を記録します。

magnus.conf ファイルに追加のパフォーマンスバケットを定義することができます (perf-init および define-perf-bucket 関数を参照)。

bucket=cache-bucket のように関数に bucket=bucket-name パラメータを追加することによって、obj.conf 内のすべての SAF のパフォーマンスを測定することができます。

パフォーマンス統計を一覧表示するには、service-dump Service 関数を使用します。

別の方法として、stats-xml Service 関数を使用してパフォーマンス統計を生成することができます。バケットは使用してもしなくてもかまいません。

パフォーマンスバケットの詳細は、『Performance Tuning, Sizing, and Scaling Guide for iPlanet Web Server』を参照してください。



AuthTrans 段階



AuthTrans は、承認変換 (Authorization Translation) を意味します。AuthTrans 指令は、クライアントにリソースへのアクセスを許可する前に承認を調べるため、命令をサーバに与えます。AuthTrans 指令は、PathCheck 指令との組み合わせで機能します。通常、AuthTrans 関数は、要求に関連付けられたユーザ名とパスワードが受け入れ可能かどうかを確認します。ただし、要求へのアクセスの許可や拒否は行なわず、これは PathCheck 関数が行ないます。

サーバは、次の 2 つのステップでクライアントユーザの承認を処理します。

  • AuthTrans 指令 - Authorization ヘッダーにあるクライアントによって送信される承認情報の妥当性検査を行ないます。

  • PathCheck 段階 - 承認されたユーザが要求されたリソースへのアクセスを許可されているかどうかを確認します。

承認プロセスは 2 つのステップに分かれているため、複数の承認スキーマを簡単に組み込むことができます。また、承認情報を記録してもそれを必要としないリソースを持つという、柔軟性も提供します。

AuthTrans 関数は、要求に関連付けられたヘッダーからユーザ名とパスワードを取得します。クライアントが最初に要求を行なうときは、ユーザ名とパスワードはまだ不明であり、AuthTrans 関数および PathCheck 関数はユーザ名とパスワードを検証できないため、共に作動して要求を拒否します。クライアントが拒否を受け取ったときの通常の対応は、適切なレルムを入力するためにユーザ名とパスワードを尋ねるダイアログボックスをポップアップすることです。その後クライアントは、ユーザ名とパスワードがヘッダーに入れられた状態で、再度要求を送信します。

obj.conf 内に複数の AuthTrans 指令がある場合、各関数は、いずれかがユーザの承認に成功するまで順番に実行されます。

この節では、次の AuthTrans クラス関数について詳しく説明します。

  • basic-auth は、カスタム関数を呼び出してユーザ名とパスワードを検証します。任意 (省略可能) で、ユーザのグループを決定します。

  • basic-ncsa は、ユーザ名とパスワードが NCSA スタイルまたはシステム DBM データベースに合っているかどうかを検証します。任意 (省略可能) で、ユーザのグループを決定します。

  • get-sslid は、現在の SSL セッションに対して一意の文字列を検出し、それを Session->client パラメータブロック内に ssl-id 変数として格納します。

  • qos-handler は、現在のサービス品質の統計を扱います。


basic-auth

AuthTrans クラス指令で適用可能です。

basic-auth 関数は、カスタム関数を呼び出して、クライアントが送信する承認情報を検証します。Authorization ヘッダーは、基本サーバ承認スキーマの一部として送信されます。

通常この関数は、PathCheck クラス関数 require-auth と組み合わせて使用されます。


パラメータ

auth-type

使用される承認のタイプを指定します。これは常に basic です。

userdb

(省略可能) ユーザの検証用に使われるユーザデータベースの絶対パスとファイル名を指定します。このパラメータは、ユーザ関数に渡されます。

userfn

承認を検証するためのユーザカスタム関数の名前です。この関数は、load-modules を使ってあらかじめ読み込んでおく必要があります。この関数のインタフェースはすべての SAF と同じです。ただし、pb パラメータにユーザ名 (user)、パスワード (pw)、ユーザデータベース (userdb)、およびもし指定されている場合には、グループデータベース (groupdb) を指定して呼び出されます。このユーザ関数は、データベースを使って名前とパスワードを確認し、それらが有効でなければ REQ_NOACTION を返します。名前とパスワードが有効であれば、REQ_PROCEED を返します。次に basic-auth 関数は、auth-typeauth-user (user)、auth-db (userdb)、および auth-password (pw、Windows NT のみ) を rq->vars pblock に追加します。

groupdb

(省略可能) グループデータベースの絶対パスとファイル名を指定します。このパラメータは、グループ関数に渡されます。

groupfn

(省略可能) グループカスタム関数の名前で、load-modules を使ってあらかじめ読み込んでおかなければなりません。この関数のインタフェースはすべての SAF と同じです。ただし、pb パラメータにユーザ名 (user)、パスワード (pw)、ユーザデータベース (userdb)、およびグループデータベース (groupdb) を指定して呼び出されます。また、この関数は、rq->vars pblock 内の auth-typeauth-user (user)、auth-db (userdb)、および auth-password (pw、Windows NT のみ) パラメータへもアクセス可能です。このグループ関数は、グループデータベースを使ってユーザのグループを決定し、それを auth-group として rq->vars に追加し、見つかった場合は REQ_PROCEED を返します。ユーザのグループが見つからなかった場合は、REQ_NOACTION を返します。

bucket

省略可能、すべての obj.conf 関数に共通



magnus.conf の場合 :


Init fn=load-modules shlib=/path/to/mycustomauth.so funcs=hardcoded_auth


obj.conf の場合 :


AuthTrans fn=basic-auth auth-type=basic userfn=hardcoded_auth

PathCheck fn=require-auth auth-type=basic realm="Marketing Plans"



関連項目
require-auth


basic-ncsa

AuthTrans クラス指令で適用可能です。

basic-ncsa 関数は、クライアントが送信する承認情報がデータベースに合っているかどうか検証します。Authorization ヘッダーは、基本サーバ承認スキーマの一部として送信されます。

通常この関数は、PathCheck クラス関数 require-auth と組み合わせて使用されます。


パラメータ

auth-type

使用される承認のタイプを指定します。これは常に basic であるべきです。

dbm

(省略可能) サーバのネイティブ書式のユーザデータベースの絶対パスと基本ファイル名を指定します。ネイティブフォーマットはシステム DBM ファイルです。これは、膨大な数のユーザに瞬時にアクセスするための、ハッシュされたファイル書式です。このパラメータを使用する場合は、userfile パラメータを同時に使用しないでください。

userfile

(省略可能) NCSA スタイルの HTTPD ユーザファイル書式のユーザデータベースの絶対パス名を指定します。この書式は、name:password という書式の行で構成されます。ここで、password は暗号化されています。このパラメータを使用する場合、dbm は使用しないでください。

grpfile

(省略可能) 使用される NCSA スタイルの HTTPD グループファイルを指定します。グループファイルの各行は、group:user1 user2 ... userN で構成されます。ここで、各ユーザはスペースで区切られます。

bucket

省略可能、すべての obj.conf 関数に共通




AuthTrans fn=basic-ncsa auth-type=basic dbm=/netscape/server4/userdb/rs

PathCheck fn=require-auth auth-type=basic realm="Marketing Plans"

AuthTrans fn=basic-ncsa auth-type=basic userfile=/netscape/server4/.htpasswd grpfile=/netscape/server4/.grpfile

PathCheck fn=require-auth auth-type=basic realm="Marketing Plans"



関連項目
require-auth


get-sslid

AuthTrans クラス指令で適用可能です。



  この関数は、下位互換性のためにのみ提供されているものです。get-sslid の機能は、SSL 接続の標準の処理に組み込まれています。

 



get-sslid 関数は、現在の SSL セッションに対して一意の文字列を検出し、それを Session->client パラメータブロック内に ssl-id 変数として格納します。

CGI が起動したときに変数 ssl-id が存在している場合、これが HTTPS_SESSIONID 環境変数として CGI に渡されます。

get-sslid 関数にはパラメータはなく、常に REQ_NOACTION が返されます。SSL が有効でない場合は無効です。


パラメータ

bucket

省略可能、すべての obj.conf 関数に共通


qos-handler

AuthTrans クラス指令で適用可能です。

qos-handler 関数は、仮想サーバ、仮想サーバクラス、およびグローバルサーバの現在のサービス品質の統計を検査し、統計情報のログをとり、エラーを返すことによって QOS パラメータを強化します。正しく機能させるためには、この関数は default オブジェクト内に構成されている最初の AuthTrans 関数でなければなりません。

この SAF 用のコードは、第 6 章「カスタム SAF の例」の例の 1 つにあります。

詳細は、『Performance Tuning, Sizing, and Scaling Guide for iPlanet Web Server』を参照してください。


パラメータ

bucket

省略可能、すべての obj.conf 関数に共通




AuthTrans fn=qos-handler


関連項目
qos-error



NameTrans 段階



NameTrans は、名前変換 (Name Translation) を意味します。NameTrans 指令は、仮想 URL をサーバ上の物理ディレクトリに変換します。たとえば、URL

http://www.test.com/some/file.html

は、次のようなファイルシステムの絶対パスに変換されます。

/usr/netscape/server4/docs/some/file.html

NameTrans 指令は、デフォルトオブジェクトに存在します。1 つのオブジェクト内に複数の NameTrans 指令がある場合、サーバは、いずれかが成功するまで、それらの一つ一つを順番に実行します。

この節では、次の NameTrans クラス関数について詳しく説明します。

  • assign-name は、名前付きオブジェクト内の指令を処理することを、サーバに伝えます。

  • document-root は、要求されたリソースの http://server-name/ の部分をドキュメントルートディレクトリに置き換えることによって、URL をファイルシステムパスに変換します。

  • home-page は、サーバのルートホームページ (/) に対する要求を特定のファイルに変換します。

  • pfx2dir は、指定した接頭辞で始まるすべての URL をファイルシステムディレクトリに変換します。また任意 (省略可能) で、追加の名前付きオブジェクト内の指令を有効にします。

  • redirect は、クライアントを別の URL にリダイレクトします。

  • strip-params は、セミコロンで区切られた組み込みパラメータをパスから削除します。

  • unix-home は、URL を、ユーザのホームディレクトリ内の指定したディレクトリに変換します。


assign-name

NameTrans クラス指令で適用可能です。

assign-name 関数は、現在の要求と一致する obj.conf 内のオブジェクトの名前を指定します。次にサーバは、デフォルトオブジェクト内の指令に優先して、名前付きオブジェクト内の指令を処理します。

例として、デフォルトオブジェクト内の次の指令について考えてください。

NameTrans fn=assign-name name=personnel from=/personnel

サーバが、http://server-name/personnel に対する要求を受け取ると仮定します。この NameTrans 指令を処理した後、サーバは obj.conf 内で personnel という名前のオブジェクトを探し、personnel オブジェクト内の指令を処理することにより続行します。

assign-name 関数は、常に REQ_NOACTION を返します。


パラメータ

from

影響を受けるパスを指定する、ワイルドカードパターンです。

name

指令がこの要求に適用される obj.conf 内の、追加の名前付きオブジェクトを指定します。

find-pathinfo-forward

(省略可能) これによりサーバは、パス内の ntrans-base 直後から順方向に PATHINFO を検索します。サーバ関数 assign-name がデフォルトで行なうように、パスの終わりから逆方向には検索しません。

このパラメータに割り当てる値は無視されます。このパラメータを使用したくない場合は、省略します。

ntrans-base パラメータが rq->vars に設定されていない場合、find-pathinfo-forward パラメータは無視されます。デフォルトでは、ntrans-base が設定されます。

この機能は、stat の実行数を減らすことによって、特定の URL のパフォーマンスを向上させます。

nostat

(省略可能) 可能なときは常に、サーバが指定した URL 上の stat を実行するのを禁止します。

NameTrans 関数 assign-name 内の nostat="virtual-path" の効果により、サーバは指定した virtual-path 上の stat が失敗するとみなします。このため、virtual-path のパスがシステム上に存在しないときのみ、たとえば、NSAPI プラグイン URL の場合、それらの URL の不要な stat を回避してパフォーマンスを向上させるために、nostat を使用します。

デフォルトの PathCheck サーバ関数を使用するとき、サーバは、ntrans-base が設定されている場合 (デフォルト状態) はパス /ntrans-base/virtual-path および /ntrans-base/virtual-path/* を stat しません。ntrans-base が設定されていない場合は、URL /virtual-path および /virtual-path/* を stat しません。

bucket

省略可能、すべての obj.conf 関数に共通




# This NameTrans directive is in the default object.
NameTrans fn=assign-name name=personnel from=/a/b/c/pers
...
<Object name=personnel>
...additional directives..
</Object>

NameTrans fn="assign-name" from="/perf" find-pathinfo-forward="" name="perf"

NameTrans fn="assign-name" from="/nsfc" nostat="/nsfc" name="nsfc"



document-root

NameTrans クラス指令で適用可能です。

document-root 関数は、サーバのルートドキュメントディレクトリを指定します。前の NameTrans 関数によって物理パスが設定されていない場合、パスの http://server-name/ 部分がドキュメントルートの物理パス名に置き換えられます。

サーバが http://server-name/somepath/somefile に対する要求を受け取るとき、document-root 関数は、http://server-name/root パラメータの値と置き換えます。たとえば、ドキュメントルートディレクトリが /usr/netscape/server4/docs の場合にサーバが http://server-name/a/b/file.html の要求を受け取ると、document-root 関数は、要求したリソースのパス名を /usr/netscape/server4/docs/a/b/file.html に変換します。

この関数は、常に REQ_PROCEED を返します。この後に存在する NameTrans 指令は決して呼び出されることはないため、必ずdocument-root を起動する指令が最後の NameTrans 指令となるようにします。

ルートドキュメントディレクトリは 1 つしか存在できません。追加のドキュメントディレクトリを指定するには、pfx2dir 関数を使って追加のパス名変換を設定します。


パラメータ

root

サーバのルートドキュメントディレクトリへのファイルシステムパスです。

bucket

省略可能、すべての obj.conf 関数に共通




NameTrans fn=document-root root=/usr/netscape/server4/docs

NameTrans fn=document-root root=$docroot



関連項目
pfx2dir


home-page

NameTrans クラス指令で適用可能です。

home-page 関数は、サーバ用のホームページを指定します。クライアントがサーバのホームページ (/) を要求するときは常に、クライアントはその指定されたドキュメントを取得します。


パラメータ

path

ホームページファイルのパスと名前です。スラッシュ (/) で始まる場合、path はファイルへの絶対パスとみなされます。

この関数は、サーバの path 変数を設定し、REQ_PROCEED を返します。path が相対パスの場合、そのパスは URI に追加され、関数は REQ_NOACTION を返して、ほかの NameTrans 指令が続きます。

bucket

省略可能、すべての obj.conf 関数に共通




NameTrans fn="home-page" path="homepage.html"

NameTrans fn="home-page" path="/httpd/docs/home.html"



pfx2dir

NameTrans クラス指令で適用可能です。

pfx2dir 関数は、要求された URL 内のディレクトリ接頭辞を実際のディレクトリ名と置き換えます。また、任意 (省略可能) で、現在の要求と一致するオブジェクトの名前を指定することもできます。(名前付きオブジェクトの使い方の詳細は、assign-nameの説明を参照してください。)


パラメータ

from

変換する URI 接頭辞です。後ろにスラッシュ (/) をつけてはなりません。

dir

接頭辞の変換先のローカルのファイルシステムディレクトリパスです。後ろにスラッシュ (/) をつけてはなりません。

name

(省略可能) 指令がこの要求に適用される obj.conf 内の、追加の名前付きオブジェクトを指定します。

find-pathinfo-forward

(省略可能) これによりサーバは、パス内の ntrans-base 直後から順方向に PATHINFO を検索します。サーバ関数 find-pathinfo がデフォルトで行なうように、パスの終わりから逆方向には検索しません。

このパラメータに割り当てる値は無視されます。このパラメータを使用したくない場合は、省略します。

サーバ関数 find-pathinfo が呼び出されたときに ntrans-base パラメータが rq->vars に設定されていない場合、find-pathinfo-forward パラメータは無視されます。デフォルトでは、ntrans-base が設定されます。

この機能は、サーバ関数 find-pathinfo 内の stat の実行数を減らすことによって、特定の URL のパフォーマンスを向上させます。

NT では、この機能は、PathCheck サーバ関数 find-pathinfo が使われるときに、PATHINFO にサーバ URL 正規化プロセス ('\' を '/' に変更) を禁止するためにも使用できます。2 バイト文字によっては、\ または ~ のような URL 区切り文字として解析できる 16 進文字が含まれることがあります。場合によっては、find-pathinfo-forward パラメータを使用することで、2 バイト文字を含む URL の正しくない構文解析を防ぐことができます。

bucket

省略可能、すべての obj.conf 関数に共通



最初の例では、URL http://server-name/cgi-bin/resource (http://x.y.z/cgi-bin/test.cgi など) は物理パス名 /httpd/cgi-local/resource (/httpd/cgi-local/test.cgi など) に変換され、サーバも cgi という名前のオブジェクト内の指令の処理を開始します。


NameTrans fn=pfx2dir from=/cgi-bin dir=/httpd/cgi-local name=cgi


2 番目の例では、URL http://server-name/icons/happy/resource (http://x.y.z/icons/happy/smiley.gif など) は物理パス名 /users/nikki/images/resource (/users/nikki/images/smiley.gif など) に変換されます。


NameTrans fn=pfx2dir from=/icons/happy dir=/users/nikki/images


3 番目の例は、find-pathinfo-forward パラメータの使い方を示しています。URL http://server-name/cgi-bin/resource は、物理パス名 /export/home/cgi-bin/resource に変換されます。


NameTrans fn="pfx2dir" find-pathinfo-forward="" from="/cgi-bin" dir="/export/home/cgi-bin" name="cgi"



redirect

NameTrans クラス指令で適用可能です。

redirect 関数により、URL を変更し、更新された URL をクライアントに送信することができます。クライアントが古いパスを使ってサーバにアクセスすると、サーバは要求を新しい URL の要求として扱います。


パラメータ

from

要求された URI の、一致する接頭辞を指定します。

url

(場合によって省略可能) クライアントに返す完全な URL を指定します。このパラメータを使用する場合、url-prefix は使用しないでください。逆の場合も同様です。

url-prefix

(場合によって省略可能) クライアントに返す新しい URL 接頭辞です。from 接頭辞は、単純にこの URL 接頭辞と置き換えられます。このパラメータを使用する場合、url は使用しないでください。逆の場合も同様です。

escape

(省略可能) 送信前に URL を util_uri_escape することをサーバに伝えるフラグです。yes または no でなければなりません。デフォルトは yes です。

bucket

省略可能、すべての obj.conf 関数に共通



最初の例では、http://server-name/whatever に対する要求はすべて、http://tmpserver/whatever に対する要求に変換されます。


NameTrans fn=redirect from=/ url-prefix=http://tmpserver


2 番目の例では、http://server-name/toopopular/whatever に対する要求はすべて、http://bigger/better/stronger/morepopular/whatever に対する要求に変換されます。


NameTrans fn=redirect from=/toopopular url=http://bigger/better/stronger/morepopular



strip-params

NameTrans クラス指令で適用可能です。

strip-params 関数は、セミコロンで区切られた組み込みパラメータをパスから削除します。 たとえば、/dir1;param1/dir2 の URI は /dir1/dir2 のパスになります。 これを使用するとき、strip-params 関数は、リストされている最初の NameTrans 指令でなければなりません。


パラメータ

bucket

省略可能、すべての obj.conf 関数に共通



NameTrans fn=strip-params


unix-home

NameTrans クラス指令で適用可能です。

UNIX の場合のみ : unix-home 関数は、ユーザ名 (通常は、~username という形式) をサーバの UNIX マシン上のユーザのホームディレクトリに変換します。ユーザディレクトリをシグナルする URL 接頭辞を指定します。この接頭辞で始まるすべての要求は、ユーザのホームディレクトリに変換されます。

/etc/passwd ファイルまたは類似した構造のファイルのいずれかを使って、ユーザのリストを指定します。ファイル内の各行は、次のような構造になります (必要でない passwd ファイル内の要素は * で示されます)。

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

起動時に一度だけサーバにパスワードファイルを走査させたい場合は、Init クラス関数 init-uhomemagnus.conf 内で使用します。


パラメータ

from

変換する URL 接頭辞で、通常は「/~」です。

subdir

Web ドキュメントを含む、ユーザのホームディレクトリ内のサブディレクトリです。

pwfile

(省略可能) /etc/passwd と異なる場合は、パスワードファイルの絶対パスとファイル名です。

name

(省略可能) 指令がこの要求に適用される、追加の名前付きオブジェクトを指定します。

bucket

省略可能、すべての obj.conf 関数に共通




NameTrans fn=unix-home from=/~ subdir=public_html

NameTrans fn=unix-home from=/~ pwfile=/mydir/passwd subdir=public_html



関連項目
init-uhome, find-links



PathCheck 段階



PathCheck 指令は、NameTrans ステップの後に返されるローカルファイルシステムパスを検査します。このパスは、CGI パス情報などの項目や/./ および /../ および // などの危険要素を検査し、その後ですべてのアクセス制限が適用されます。

複数の PathCheck 指令がある場合、関数のそれぞれが順番に実行されます。

この節では、次の PathCheck クラス関数について詳しく説明します。

  • check-acl は、承認のためアクセス制御リストを検査します。

  • deny-existence は、リソースが見つからなかったことを示します。

  • find-index は、ディレクトリが要求されたときにデフォルトファイルを検出します。

  • find-links は、特定のファイルシステムへのリンクを持つディレクトリへのアクセスを拒否します。

  • find-pathinfo は、PATH_INFO CGI 環境変数用にファイル名以外の特別なパス情報を検出します。

  • get-client-cert は、SSL3 セッションから承認されたクライアントの証明書を取得します。

  • load-config は、要求されたパス内のファイルから特別な構成情報を探して、読み込みます。

  • nt-uri-clean は、「not found」を示すことで、安全でないパス名を持つリソースへのアクセスを拒否します。

  • ntcgicheck は、指定した拡張子を持つ CGI ファイルを探します。

  • require-auth は、承認されていないユーザまたはグループのアクセスを拒否します。

  • set-virtual-index は、ディレクトリの仮想インデックスを指定します。

  • ssl-check は、秘密鍵サイズを確認します。

  • ssl-logout は、サーバの SSL セッションキャッシュ内の現在の SSL セッションを無効化します。

  • unix-uri-clean は、「not found」を示すことで、安全でないパス名を持つリソースへのアクセスを拒否します。


check-acl

PathCheck クラス指令で適用可能です。

check-acl 関数は、クライアントが要求されたリソースへのアクセスを許可されているかどうかを確認するために使用する、アクセス制御リスト (Access Control List: ACL) を指定します。アクセス制御リストには、リソースへのアクセスが許可されている人や許可されていない人、どのような条件の下でアクセスが許可されているかに関する情報が含まれています。

オブジェクト内の PathCheck 指令の順番とは関係なく、check-acl 関数が最初に実行されます。指定した ACL が必要とする場合は、これによってユーザの認証が行なわれ、アクセス制御状態も更新されます。


パラメータ

acl

アクセス制御リストの名前です。

path

(省略可能) ACL を適用するパスを指定するワイルドカードパターンです。

bucket

省略可能、すべての obj.conf 関数に共通




PathCheck fn=check-acl acl="*HRonly*"



deny-existence

PathCheck クラス指令で適用可能です。

deny-existence 関数は、クライアントが指定したパスにアクセスしようとしたときに、「not found」メッセージを送信します。サーバは「forbidden」ではなく「not found」を送信するため、パスが存在するかどうかをユーザが知ることができません。


パラメータ

path

(省略可能) 非表示にするファイルシステムパスのワイルドカードパターンです。パスが一致しない場合、この関数は何も行なわず、REQ_NOACTION を返します。パスが指定されていない場合は、一致するものとみなされます。

bong-file

(省略可能) 「not found」メッセージで応答するのではなく、送信するファイルを指定します。これは、ファイルシステムの絶対パスです。

bucket

省略可能、すべての obj.conf 関数に共通




PathCheck fn=deny-existence path=/usr/netscape/server4/docs/private

PathCheck fn=deny-existence bong-file=/svr/msg/go-away.html



find-index

PathCheck クラス指令で適用可能です。

find-index 関数は、要求されたパスがディレクトリかどうかを調査します。要求されたパスがディレクトリであれば、この関数はディレクトリ内のインデックスファイルを検索してから、インデックスファイルをポイントするようにパスを変更します。インデックスファイルが見つからない場合、サーバはディレクトリのリストを生成します。

ファイル obj.confhome-page を呼び出す NameTrans 指令があり、要求されたディレクトリがルートディレクトリの場合は、インデックスページではなくホームページがクライアントに返されることに注意してください。

照会文字列がある場合、HTTP メソッドが GET ではない場合、あるいはパスが有効なファイルのものである場合、find-index 関数は何も行ないません。


パラメータ

index-names

探索するインデックスファイル名のコンマで区切られたリストです。スペースは、それがファイル名の一部である場合のみ使用します。コンマの前または後にスペースを入れないでください。このリストは、ファイルシステムが大文字と小文字を区別する場合は、大文字と小文字を区別します。

bucket

省略可能、すべての obj.conf 関数に共通




PathCheck fn=find-index index-names=index.html,home.html



find-links

PathCheck クラス指令で適用可能です。

UNIX の場合のみ : find-links 関数は、現在のパスに、ほかのディレクトリまたはファイルシステムへのシンボリックまたはハードリンクが存在するかどうか調べます。何も見つからないと、エラーが返されます。通常この関数は、信頼性のないディレクトリ (ユーザホームディレクトリなど) に対して使われます。この関数は、公開すべきでない情報をほかのユーザによってポイントされることのないようにします。


パラメータ

disable

使用不可にするリンクの文字列です。

  • h はハードリンク

  • s はソフトリンク

  • o は、ユーザがリンクのターゲットを所有している場合のみ、ユーザホームディレクトリからのシンボリックリンクを許可します。

dir

検査を始めるディレクトリです。絶対パスを指定すると、指定したパスとそのサブディレクトリに対するすべての要求が、シンボリックリンクについて検査されます。部分パスを指定すると、その部分パスを含むすべての要求が、シンボリックリンクについて検査されます。たとえば、/user/ を使用するときに some/user/directory に対する要求が来ると、そのディレクトリはシンボリックリンクについて検査されます。

bucket

省略可能、すべての obj.conf 関数に共通

checkFileExistence

リンクされているファイルが存在しているかどうか検査し、その検査が失敗すると、403 (forbidden) で要求を中止します。




PathCheck fn=find-links disable=sh dir=/foreign-dir

PathCheck fn=find-links disable=so dir=public_html



関連項目
init-uhome, unix-home


find-pathinfo

PathCheck クラス指令で適用可能です。

find-pathinfo 関数は、URL 内のファイル名の後の追加のパス情報を探し、CGI 環境変数 PATH_INFO で使用するためにそれを格納します。


パラメータ

bucket

省略可能、すべての obj.conf 関数に共通




PathCheck fn=find-pathinfo

PathCheck fn=find-pathinfo find-pathinfo-forward=""



get-client-cert

PathCheck クラス指令で適用可能です。

get-client-cert 関数は、SSL3 セッションから承認済みクライアントの証明書を取得します。これは、すべての HTTP メソッド、または指定したパターンと一致するメソッドにのみ適用することができます。また、サーバ上で SSL が有効なときのみ機能します。

証明書が存在しているか、SSL3 セッションから取得された場合、この関数は REQ_NOACTION を返し、要求の続行を許可します。それ以外の場合、この関数は REQ_ABORTED を返し、プロトコル状態を 403 FORBIDDEN に設定します。これにより、要求は失敗し、クライアントは FORBIDDEN 状態になります。


パラメータ

dorequest

実際に証明書の取得を試みるか、またはそれが存在していることを単にテストするだけかを制御します。dorequest がない場合、デフォルト値は 0 です。

  • 1 は、まだサーバにクライアントの証明書がない場合に、クライアント証明書を取得するために SSL3 ハンドシェークを再実行するよう関数に伝えます。 一般的には、これによってクライアントは、ユーザに対してクライアント証明書を選択するダイアログボックスを表示します。 最初のハンドシェークで要求されている場合、あるいはキャッシュされた SSL セッションが再開している場合は、サーバには既にクライアント証明書がある可能性があります。

  • 0 は、まだサーバにクライアントの証明書がない場合に、SSL3 ハンドシェークを再実行しないよう関数に伝えます。

証明書がクライアントから取得され、サーバが検証に成功した場合、DER エンコードされた X.509 証明書の ASCII base64 エンコーディングは、Request->vars pblock 内のパラメータ auth-cert に配置され、この関数は、REQ_PROCEED を返して要求の続行を許可します。

require

クライアント証明書の取得の失敗が HTTP 要求を中止するかどうかを制御します。 require がない場合、デフォルト値は 1 です。

  • 1 は、dorequest が処理された後にクライアント証明書が存在しない場合、HTTP 要求を中止するよう関数に伝えます。 この場合、HTTP 状態は PROTOCOL_FORBIDDEN に設定され、この関数は REQ_ABORTED を返します。

  • 0 は、dorequest が処理された後にクライアント証明書が存在しない場合、REQ_NOACTION を返すよう関数に伝えます。

method

(省略可能) 関数が適用される HTTP メソッドのワイルドカードパターンを指定します。method がない場合、この関数はすべての要求に適用されます。

bucket

省略可能、すべての obj.conf 関数に共通




# クライアント証明書をセッションから取得する
# 証明書がセッションに関連付けられていない場合は、証明書を要求する
# クライアントが有効な証明書を提示しなかった場合、要求は失敗する

PathCheck fn="get-client-cert" dorequest="1"



load-config

PathCheck クラス指令で適用可能です。

load-config 関数は、ドキュメントディレクトリ内で構成ファイルを検索し、そのファイルの内容をサーバの既存の構成に追加します。これらの構成ファイル (動的構成ファイルとも言う) は、要求されたリソースの追加のアクセス制御リストを指定します。サーバは、動的構成ファイルの規則に従って、要求されたリソースへのアクセスをクライアントに許可することも、許可しないこともあります。

load-config を起動する各指令は、ベースディレクトリに関連付けられています。ベースディレクトリは、basedir パラメータから明示的に示されるか、または要求されたリソースのルートディレクトリから派生します。ベースディレクトリは、次の 2 つのことを決定します。

  • 要求がこの load-config 関数への呼び出しを起動する、最上位ディレクトリ。

    たとえば、ベースディレクトリが D:/Netscape/Server4/docs/nikki/ の場合、このディレクトリまたはそのサブディレクトリ (さらにそれらのサブディレクトリ) 内のリソースに対する要求のみが、動的構成ファイルの検索をトリガーします。要求されたリソースはベースディレクトリの親ディレクトリにあるため、リソース D:/Netscape/Server4/docs/somefile.html に対する要求はこのような検索をトリガーしません。

  • サーバが要求されたリソースに適用する動的構成ファイルを検索する、最上位ディレクトリ。

    ベースディレクトリが D:/Netscape/Server4/docs/nikki/ の場合、サーバはこのディレクトリ内の動的構成ファイルの検索を開始します。ほかの要因によって、サブディレクトリを検索することもあれば、検索しないこともあります (ただし、親ディレクトリは検索しません)。

サーバマネージャのインタフェースから動的設定ファイルを有効にするとき、システムは obj.conf ファイルに、ppath パラメータを含む追加のオブジェクトを書き込みます。load-config を起動する指令を、デフォルトオブジェクトに手入力で追加する (それらを個々のオブジェクトに指定するのではなく) と、サーバマネージャのインタフェースはその変更を反映しないことがあります。

load-config を起動する PathCheck 指令を手入力でファイル obj.conf に追加する場合は、デフォルトオブジェクトにそれを指定するのではなく、追加のオブジェクト (<OBJECT> タグで作成したもの) にそれを指定します。動的構成ファイル内のアクセス規則が影響するリソースの部分パス名を指定するには、OBJECT タグの ppath 属性を使用します。この部分パス名は、パターンと一致する任意のパス名にすることができ、ワイルドカードを含むことができます。

たとえば、次の <OBJECT> タグは、ディレクトリ D:/Netscape/Server4/docs 内のリソースに対する要求がファイル my.nsconfig のアクセス規則に従うように指定しています。


<Object ppath="D:/Netscape/Server4/docs/*">
PathCheck fn="load-config" file="my.nsconfig" descend=1 basedir="D:/Netscape/Server4/docs"
</Object>




  ppath が、ディレクトリツリーの中のベースディレクトリより上位 (あるいは、ツリーの別の分岐にある) のリソースまたはディレクトリへ解決する場合、load-config 関数は起動されません。これは、ベースディレクトリが、要求が load-config 関数を起動する最上位ディレクトリを指定するためです。

 



load-config 関数は、構成ファイルが読み込み済みであれば REQ_PROCEED を返し、エラーが発生したときは REQ_ABORTED を返し、構成ファイルがまだ読み込まれていなければ、REQ_NOACTION を返します。


パラメータ

file

(省略可能) 要求されたリソースに適用されるアクセス規則を含む、動的構成ファイルの名前です。これを指定しない場合、ファイル名は .nsconfig とみなされます。

disable-types

(省略可能) magnus-internal/cgi などの、ベースディレクトリを使用不可にするワイルドカードパターンタイプを指定します。これらのタイプと一致するリソースに対する要求は、中止されます。

descend

(省略可能) このパラメータがある場合は、サーバが動的構成ファイルについてこのディレクトリのサブディレクトリで検索することを指定します。たとえば、descend=1 は、サーバがサブディレクトリを検索しなければならないことを指定します。descend パラメータがなければ、この関数がベースディレクトリのみを検索しなければならないことを指定します。

basedir

(省略可能) ベースディレクトリを指定します。これは、要求が load-config 関数を起動する最上位ディレクトリであり、サーバが構成ファイルの検索を開始するディレクトリでもあります。

basedir が指定されていなければ、ベースディレクトリは、要求されたリソースの URL を物理パス名に変換した結果として生じる、ルートディレクトリとみなされます。たとえば、要求が http://server-name/a/b/file.html に対するものだった場合、物理ファイル名は次のようになります。
/document-root/a/b/file.html.

bucket

省略可能、すべての obj.conf 関数に共通



この例では、サーバが D:/Netscape/Server4/docs/nikki/ またはそのサブディレクトリにある部分文字列 secret を含むリソースに対する要求を受信するときは常に、 checkaccess.nsconfig という構成ファイルが検索されます。

サーバはディレクトリ D:/Netscape/Server4/docs/nikki で検索を開始し、サブディレクトリも検索します。サーバは、要求されたリソースへのアクセスをクライアントに許可するか否かを決定するアクセス制御規則を適用するために、見つかった checkaccess.nsconfig の各インスタンスを読み込みます。


<Object ppath="*secret*">
PathCheck fn="load-config" file="checkaccess.nsconfig" basedir="D:/Netscape/Server4/docs/nikki" descend="1"
</Object>



nt-uri-clean

PathCheck クラス指令で適用可能です。

Windows NT の場合のみ : nt-uri-clean 関数は、物理パスに \.\\..\、または \\ (これらには潜在的にセキュリティ上の問題があります)が含まれているリソースへのアクセスを拒否します。


パラメータ

bucket

省略可能、すべての obj.conf 関数に共通

tildeok

存在する場合は、URL にチルド「~」文字が含まれることを許可します。これは、NT プラットフォームではセキュリティ上の危険性があります。longfi~1.htmlongfilename.htm を参照することもありますが、適切な ACL の検査は受けていません。

dotdirok

存在している場合は、"//" シーケンスは許可されます。




PathCheck fn=nt-uri-clean



関連項目
unix-uri-clean


ntcgicheck

PathCheck クラス指令で適用可能です。

Windows NT の場合のみ : ntcgicheck 関数は、拡張子を持たないファイル名にファイル名拡張子を追加するか、拡張子が .cgi のファイル名と置き換えることを指定します。


パラメータ

extension

置き換えるファイル拡張子です。

bucket

省略可能、すべての obj.conf 関数に共通




PathCheck fn=ntcgicheck extension=pl



関連項目
init-cgi, send-cgi, send-wincgi, send-shellcgi


require-auth

PathCheck クラス指令で適用可能です。

require-auth 関数は、ユーザまたはグループが承認済みの場合のみ、リソースへのアクセスを許可します。この関数が呼び出される前は、承認関数 (basic-auth など) は AuthTrans 指令で呼び出す必要があります。

AuthTrans 指令でユーザが承認済みであり、auth-user パラメータが指定されている場合、ユーザの名前は auth-user ワイルドカード値と一致していなければなりません。また、auth-group パラメータが指定されている場合、承認済みユーザは承認済みグループに属している必要があり、この承認済みグループは auth-group ワイルドカード値と一致していなければなりません。


パラメータ

path

(省略可能) この関数が作動する、ワイルドカードのローカルのファイルシステムパスです。パスが指定されていない場合、この関数はすべてのパスに適用されます。

auth-type

使用される HTTP 承認のタイプであり、AuthTrans 内の前の承認関数の auth-type と一致していなければなりません。現在のところ、basic が唯一の定義されている承認タイプです。

realm

ユーザ名とパスワードが要求される、セキュリティ保護された領域 (またはレルム) を示すブラウザに送信された文字列です。

auth-user

(省略可能) アクセスが許可されているユーザのワイルドカードリストを指定します。このパラメータが指定されていない場合、承認関数によって承認されるすべてのユーザにアクセスが許可されます。

auth-group

(省略可能) アクセスが許可されているグループのワイルドカードリストを指定します。

bucket

省略可能、すべての obj.conf 関数に共通




PathCheck fn=require-auth auth-type=basic realm="Marketing Plans" auth-group=mktg auth-user=(jdoe|johnd|janed)



関連項目
basic-auth, basic-ncsa


set-virtual-index

PathCheck クラス指令で適用可能です。

set-virtual-index 関数は、URL の転送を決定する、ディレクトリの仮想インデックスを指定します。このインデックスは、LiveWire アプリケーション、それ自身のネームスペース内のサーブレット、Netscape Application Server applogic などがあてはまります。

from パラメータに現在の URI と一致する URI がリストされていない場合、REQ_NOACTION が返されます。virtual-index パラメータによって指定されているファイルがない場合、または現在の URI が見つからない場合は、REQ_ABORTED が返されます。現在の URI が from パラメータに記述されている URI のいずれかと一致する場合、または from パラメータがない場合は、REQ_RESTART が返されます。


パラメータ

virtual-index

ユーザが入力する URI 用のインデックスとして機能する、コンテンツジェネレータの URI です。

from

(省略可能) この virtual-index を適用できる、コンマで区切られた URI のリストです。from が指定されていない場合は、常に virtual-index が適用されます。

bucket

省略可能、すべての obj.conf 関数に共通




# MyLWApp は LiveWire アプリケーションである
PathCheck fn=set-virtual-index virtual-index=MyLWApp



ssl-check

PathCheck クラス指令で適用可能です。

セキュリティの設定で指定されている現在の暗号化設定と整合性のない制限が選択されている場合、この関数は、秘密鍵サイズがより大きい暗号化を有効にする必要があることを警告する、ポップアップ ダイアログを開きます。この関数は、Client タグと一緒に使用して、エクスポートできないブラウザに対して特定のディレクトリへのアクセスを制限するよう設計されています。

SSL が有効でない場合、または secret-keysize パラメータが指定されていない場合、この関数は REQ_NOACTION を返します。現在のセッションの秘密鍵サイズが指定した secret-keysize より小さく、bong-file パラメータが指定されていない場合、この関数は、 PROTOCOL_FORBIDDEN のステータスと共に REQ_ABORTED を返します。bong ファイルが指定されている場合、この関数は REQ_PROCEED を返し、bong ファイル名に path 変数が設定されます。また、鍵サイズの制限が満たされないときは、現在のセッションの SSL セッションキャッシュエントリは無効になるため、同じクライアントが次にサーバに接続するときにフル SSL ハンドシェークが発生します。

ssl-checkREQ_NOACTION 以外のものを返す場合、ssl-check を使用する要求はアクセラレータファイルのキャッシュではキャッシュできません。


パラメータ

secret-keysize

(省略可能) 秘密鍵に必要な最低ビット数です。

bong-file

(省略可能) 制限に合わない場合に機能させるファイルの名前 (URI ではない) です。

bucket

省略可能、すべての obj.conf 関数に共通


ssl-logout

PathCheck クラス指令で適用可能です。

ssl-logout は、サーバの SSL セッションキャッシュ内の現在の SSL セッションを無効化します。これは、現在の要求には影響しませんが、クライアントが次に接続するときに、新しい SSL セッションを作成します。 SSL が有効な場合、この関数は、セッションキャッシュエントリを無効にした後に REQ_PROCEED を返します。 SSL が有効でない場合は、REQ_NOACTION を返します。


パラメータ

bucket

省略可能、すべての obj.conf 関数に共通


unix-uri-clean

PathCheck クラス指令で適用可能です。

UNIX の場合のみ : unix-uri-clean 関数は、物理パスに /.//../、または // (これらには潜在的にセキュリティ上の問題があります) が含まれているリソースへのアクセスを拒否します。


パラメータ

bucket

省略可能、すべての obj.conf 関数に共通

dotdirok

存在している場合は、"//" シーケンスは許可されます。




PathCheck fn=unix-uri-clean



関連項目
nt-uri-clean



ObjectType 段階



ObjectType 指令は、要求に応えてクライアントに送信されるファイルの、MIME タイプを決定します。現在、送信される MIME 属性は typeencoding、および language です。MIME タイプは、content-type ヘッダーの値としてクライアントに送信されます。

ObjectType 指令は type パラメータも設定します。このパラメータは、Service 指令が、要求された内容の種類に応じて要求を処理する方法を決定するために使用します。

1 つのオブジェクト内に複数の ObjectType 指令がある場合、現れる順番ですべての指令が適用されます。ある指令が属性を設定し、それ以降の指令がその属性を変更しようとした場合、最初の設定が使用され、それ以降の設定は無視されます。

ほとんどの場合 obj.conf ファイルには、type-by-extension 関数を呼び出す ObjectType 指令があります。この関数はサーバに、特定のファイル (MIME タイプのファイル) を確認して要求されたリソースの拡張子からコンテンツタイプを推測するよう、指示します。

この節では、次の ObjectType クラス関数について詳しく説明します。

  • force-type は、特定のタイプへの応答の content-type ヘッダーを設定します。

  • set-default-typeを使って、クライアントに返信される応答のデフォルトの charsetcontent-encoding、および content-language を定義することができます。

  • shtml-hacktype は、.htm および .html ファイルが、サーバが構文解析する html コマンドについて解析されるように要求します。

  • type-by-exp は、要求されたパスに基づいて応答の content-type ヘッダーを設定します。

  • type-by-extension は、ファイル拡張子と MIME タイプのデータベースに基づいて、応答の content-type ヘッダーを設定します。


force-type

ObjectType クラス指令で適用可能です。

force-type 関数は、まだ MIME タイプを持たない要求に、タイプを割り当てます。これを使用して、デフォルトのオブジェクトタイプを指定します。

ほかのすべての ObjectType 指令が MIME タイプを最初に設定する機会を持つように、この関数を呼び出す指令が ObjectType 指令のリストの最後に来るようにしてください。1 つのオブジェクト内に複数の ObjectType 指令がある場合、現れる順番ですべての指令が適用されます。ある指令が属性を設定し、それ以降の指令がその属性を変更しようとした場合、最初の設定が使用され、それ以降の設定は無視されます。


パラメータ

type

(省略可能) 一致する要求に割り当てられたタイプです (content-type ヘッダー)。

enc

(省略可能) 一致する要求に割り当てられたエンコーディングです (content-encoding ヘッダー)。

lang

(省略可能) 一致する要求に割り当てられた言語です (content-language ヘッダー)。

charset

(省略可能) rq->srvhdrs 内の magnus-charset パラメータの文字セットです。ブラウザが Accept-charset ヘッダーを送信した場合、またはその User-agent が mozilla/1.1 以上の場合は、; charset=charset を content-type に付加します。ここで、charset は、rq->srvhdrs 内の magnus-charset パラメータの値です。

bucket

省略可能、すべての obj.conf 関数に共通




ObjectType fn=force-type type=text/plain

ObjectType fn=force-type lang=en_US



関連項目
type-by-extension, type-by-exp


set-default-type

ObjectType クラス指令で適用可能です。

この関数を使って、クライアントに返信される応答のデフォルトの charsetcontent-encoding、および content-language を定義することができます。

charsetcontent-encoding、および content-language が応答に設定されていない場合は、ヘッダーが送信される直前に、set-default-type で定義されているデフォルトが使用されます。この関数を obj.conf 内のさまざまなオブジェクトに置くことによって、ドキュメントツリーのさまざまな部分に対して、さまざまなデフォルトを定義することができます。


パラメータ

enc

(省略可能) 一致する要求に割り当てられたエンコーディングです (content-encoding ヘッダー)。

lang

(省略可能) 一致する要求に割り当てられた言語です (content-language ヘッダー)。

charset

(省略可能) rq->srvhdrs 内の magnus-charset パラメータの文字セットです。ブラウザが Accept-charset ヘッダーを送信した場合、またはその User-agent が mozilla/1.1 以上の場合は、; charset=charset を content-type に付加します。ここで、charset は、rq->srvhdrs 内の magnus-charset パラメータの値です。

bucket

省略可能、すべての obj.conf 関数に共通




ObjectType fn="set-default-type" charset="iso_8859-1"



shtml-hacktype

ObjectType クラス指令で適用可能です。

shtml-hacktype 関数は、.htm または .html ファイルの content-type を magnus-internal/parsed-html に変更し、REQ_PROCEED を返します。これは、拡張子が .htm または .html のファイルをサーバ側に取り込むという、下位互換性を提供します。この関数は、UNIX システム上のファイルの実行ビットを検査することもできます。この関数の使用は推奨されていません。


パラメータ

exec-hack

(UNIX の場合のみ。省略可能) 関数に、実行ビットが有効な場合のみ content-type を変更することを伝えます。このパラメータの値は重要ではありません。指定するだけでかまいません。exec-hack=true を使用することもできます。

bucket

省略可能、すべての obj.conf 関数に共通




ObjectType fn=shtml-hacktype exec-hack=true



type-by-exp

ObjectType クラス指令で適用可能です。

type-by-exp 関数は、現在のパスをワイルドカード拡張子と一致させます。この 2 つが一致する場合、type パラメータ情報がファイルに適用されます。これは、URL に指定されているファイルまたはディレクトリのワイルドカードパターンを使用することを除けば、type-by-extension と同じです。


パラメータ

exp

この関数を適用するパスのワイルドカードパターンです。

type

(省略可能) 一致する要求に割り当てられたタイプです (content-type ヘッダー)。

enc

(省略可能) 一致する要求に割り当てられたエンコーディングです (content-encoding ヘッダー)。

lang

(省略可能) 一致する要求に割り当てられた言語です (content-language ヘッダー)。

charset

(省略可能) rq->srvhdrs 内の magnus-charset パラメータの文字セットです。ブラウザが Accept-charset ヘッダーを送信した場合、またはその User-agent が mozilla/1.1 以上の場合は、; charset=charset を content-type に付加します。ここで、charset は、rq->srvhdrs 内の magnus-charset パラメータの値です。

bucket

省略可能、すべての obj.conf 関数に共通




ObjectType fn=type-by-exp exp=*.test type=application/html



関連項目
type-by-extension, force-type


type-by-extension

ObjectType クラス指令で適用可能です。

この関数はサーバに、MIME タイプマッピングのテーブルを見て、要求されたリソースの拡張子に従って要求されたリソースの MIME タイプを探すよう指示します。MIME タイプは、クライアントに返信される content-type ヘッダーに追加されます。

MIME タイプマッピングのテーブルは、server.xml ファイル内の MIME 要素によって作成されます。このファイルは、MIME タイプのファイルまたはリストを読み込んでマッピングを作成します。server.xml の詳細は、第 8 章「仮想サーバの構成ファイル」を参照してください。MIME タイプファイルの詳細は、付録 B「MIME タイプ」を参照してください。

たとえば、次の 2 行は MIME タイプファイルの一部分です。


type=text/html    exts=htm,html
type=text/plain    exts=txt

要求されたリソースの拡張子が htm または html の場合、type-by-extension 関数はタイプを text/html に設定します。拡張子が .txt の場合、関数によりタイプは text/plain に設定されます。


パラメータ

bucket

省略可能、すべての obj.conf 関数に共通




ObjectType fn=type-by-extension



関連項目
type-by-exp, force-type



Service 段階



関数の Service クラスは、クライアントに応答データを送信します。

すべての Service 指令には、関数が実行されるかどうかを決定する、次のようなパラメータ (省略可能) があります。省略可能なすべてのパラメータは、実行される関数に対する現在の要求と一致している必要があります。

  • type

    (省略可能) この関数が実行される MIME タイプのワイルドカードパターンを指定します。magnus-internal/* MIME タイプは、実行する Service 関数を選択するためにのみ使用されます。

  • method

    (省略可能) この関数が実行される HTTP メソッドのワイルドカードパターンを指定します。一般的な HTTP メソッドは、GETHEAD、および POST です。

  • query

    (省略可能) この関数が実行される照会文字列のワイルドカードパターンを指定します。

  • UseOutputStreamSize

    (省略可能) クライアントに送信されるデータのデフォルトの出力ストリームのバッファサイズ (バイト単位) を決定します。このパラメータが指定されていない場合、デフォルトは 8192 バイトです。



      UseOutputStreamSize パラメータを obj.conf ファイル内で 0 に設定して、出力ストリームバッファリングを使用不可にすることができます。magnus.conf ファイルの場合、UseOutputStreamSize を 0 に設定しても何にも影響は与えません。

     



  • flushTimer

    (省略可能) バッファリングが有効である書き込み操作間の間隔の最大数を、ミリ秒で決定します。次に続く書き込み操作間の間隔がアプリケーションの flushTimer 値より大きい場合、それ以降のバッファリングは使用不可になります。これは、継続的に稼働し、定期的な状態更新レポートを生成する、CGI アプリケーションの状態を監視する際に必要です。このパラメータが指定されていない場合、デフォルトは 3000 ミリ秒です。

  • ChunkedRequestBufferSize

    (省略可能) 「チャンクしていない」要求データのデフォルトのバッファサイズ (バイト単位) を決定します。このパラメータが指定されていない場合、デフォルトは 8192 バイトです。

  • ChunkedRequestTimeout

    (省略可能) 「チャンクしていない」要求データのデフォルトのタイムアウト (秒単位) を決定します。このパラメータが指定されていない場合、デフォルトは 60 秒です。

複数の Service クラス関数がある場合、省略可能なワイルドカードパラメータ (typemethod、および query) と一致する最初のものが実行されます。

UseOutputStreamSizeflushTimerChunkedRequestBufferSize、および ChunkedRequestTimeout パラメータの詳細は、「バッファ化されたストリーム」を参照してください。UseOutputStreamSizeChunkedRequestBufferSize、および ChunkedRequestTimeout パラメータも magnus.conf 指令と同様です。「チャンクされたエンコーディング」を参照してください。obj.conf パラメータは、magnus.conf 指令を上書きします。

デフォルトでは、サーバは、send-file 関数を呼び出すことによって、要求されたファイルをクライアントに送信します。デフォルトを設定する指令は次のとおりです。

Service method="(GET|HEAD|POST)" type="*~magnus-internal/*" fn="send-file"

通常、この指令はほかのすべての Service 指令に起動の機会を与えるため、Service クラス指令のセットの最後に来ます。この指令は、要求のメソッドが GETHEAD、または POST で、タイプが magnus-internal/ で始まらない場合に起動されます。*~ というパターンは「一致しない」ことを意味するので、注意してください。パターンで使用できる文字のリストは、付録 C「ワイルドカードパターン」を参照してください。

この節では、次の Service クラス関数について詳しく説明します。

  • add-footer は、ファイル名または URL で指定されているフッターを HTML ファイルに付加します。

  • add-header は、ファイル名または URL で指定されているヘッダーを HTML ファイルの前に付加します。

  • append-trailer は、HTML ファイルの終わりにテキストを追加します。

  • imagemap は、サーバ側のイメージマップを処理します。

  • index-common は、要求されたディレクトリ内のファイルとディレクトリの拡張リストを生成します。

  • index-simple は、要求されたディレクトリ内のファイルとディレクトリのシンプルなリストを生成します。

  • key-toosmall は、提供されている証明書鍵サイズが受け入れるには小さすぎることを、クライアントに示します。

  • list-dir は、ディレクトリの内容を一覧表示します。

  • make-dir はディレクトリを作成します。

  • query-handler は、HTML ISINDEX タグを処理します。

  • remove-dir は空のディレクトリを削除します。

  • remove-file はファイルを削除します。

  • rename-file はファイルの名前を変更します。

  • send-cgi は、環境変数を設定し、CGI プログラムを起動し、クライアントに応答を送信します。

  • send-file は、ローカルファイルをクライアントに送信します。

  • send-range は、バイト単位のファイルの範囲をクライアントに送信します。

  • send-shellcgi は、環境変数を設定し、シェル CGI プログラムを起動し、クライアントに応答を送信します。

  • send-wincgi は、環境変数を設定し、WinCGI プログラムを起動し、クライアントに応答を送信します。

  • service-dump は、収集されたパフォーマンスバケットデータに基づいて、パフォーマンスレポートを作成します。

  • shtml_send は、サーバが構文解析する html コマンドについて HTML ファイルを構文解析します。

  • stats-xml は、XML フォーマットのパフォーマンスレポートを作成します。

  • upload-file は、ファイルをアップ読み込んで保存します。


add-footer

Service クラス指令で適用可能です。

この関数は、クライアントに送信される HTML ファイルにフッターを付加します。このフッターはファイル名または URI のいずれかとして指定されます。つまり、フッターは動的に生成できます。フッターとして静的テキストを指定するには、append-trailer 関数を使用します。


パラメータ

file

(省略可能) フッターを含むファイルへのパス名。file または uri のいずれかを指定します。

デフォルトでは、パス名は相対です。パス名が絶対パス名の場合は、NSIntAbsFilePath パラメータを yes として渡します。

uri

(省略可能) フッターを含むリソースを指す URI。file または uri のいずれかを指定します。

NSIntAbsFilePath

(省略可能) file パラメータが指定されている場合、NSIntAbsFilePath パラメータは、ファイル名が絶対か相対かを決定します。デフォルトは相対です。絶対ファイルパスを示すには、値を yes に設定します。

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service type=text/html method=GET fn=add-footer file="footers/footer1.html"

Service type=text/html method=GET fn=add-footer file="D:/netscape/server4/footers/footer1.html" NSIntAbsFilePath="yes"



関連項目
append-trailer, add-header


add-header

Service クラス指令で適用可能です。

この関数は、クライアントに送信される HTML ファイルの前にヘッダーを追加します。このヘッダーはファイル名または URI のいずれかとして指定されます。つまり、ヘッダーは動的に生成できます。


パラメータ

file

(省略可能) ヘッダーを含むファイルへのパス名。file または uri のいずれかを指定します。

デフォルトでは、パス名は相対です。パス名が絶対パス名の場合は、NSIntAbsFilePath パラメータを yes として渡します。

uri

(省略可能) ヘッダーを含むリソースをポイントする URI。file または uri のいずれかを指定します。

NSIntAbsFilePath

(省略可能) file パラメータが指定されている場合、NSIntAbsFilePath パラメータは、ファイル名が絶対か相対かを決定します。デフォルトは相対です。絶対ファイルパスを示すには、値を yes に設定します。

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service type=text/html method=GET fn=add-header file="headers/header1.html"

Service type=text/html method=GET fn=add-header file="D:/netscape/server4/headers/header1.html" NSIntAbsFilePath="yes"



関連項目
add-footer, append-trailer


append-trailer

Service クラス指令で適用可能です。

append-trailer 関数は、HTML ファイルを送信し、その終わりにテキストを付加します。これは、HTML ファイルにテキストを付加するだけです。通常これは、作成者の情報と著作権のテキストに使われます。ファイルの最後の更新日を挿入できます。

必須パラメータがない場合、URL のファイル名の後に追加のパス情報がある場合、あるいはファイルが読み取り専用アクセスで開くことができない場合は、REQ_ABORTED を返します。


パラメータ

trailer

HTML ドキュメントに追加するテキストです。文字列は、送信される前に util_uri_unescape でアンエスケープ処理されます。テキストには HTML タグを入れることができ、データのアンエスケープ処理と挿入の後で最大 512 文字にすることができます。

文字列 :LASTMOD: (これは、ファイルが最後に更新された日付と置き換えられます) を使用する場合は、timefmt の時刻形式も指定する必要があります。

timefmt

(省略可能) :LASTMOD: の時刻形式の文字列です。時刻形式の詳細は、付録 D「時刻の書式」を参照してください。timefmt が指定されていない場合、:LASTMOD: は時刻とは置き換えられません。

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service type=text/html method=GET fn=append-trailer trailer="<hr><img src=/logo.gif> Copyright 1999"

# トレーラを MM/DD/YY 形式の日付付きで追加する: MM/DD/YY
Service type=text/html method=GET fn=append-trailer timefmt="%D" trailer="<HR>File last updated on: :LASTMOD:"



関連項目
add-footer, add-header


imagemap

Service クラス指令で適用可能です。

imagemap 関数は、イメージマップの要求に応答します。イメージマップは複数領域に分割されたイメージであり、それぞれには関連する URL があります。どの URL がどの領域に関連付けられているかについての情報は、マッピングファイルに格納されます。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service type=magnus-internal/imagemap method=(GET|HEAD) fn=imagemap



index-common

Service クラス指令で適用可能です。

index-common 関数は、要求されたディレクトリ内のファイルの拡張 (または共通) リストを生成します。このリストはアルファベット順にソートされています。ピリオド (.) で始まるファイルは表示されません。各項目は 1 つのHTML リンクとして表示されます。この関数は、各ファイルのサイズ、最新の更新日付、およびアイコンを含む、index-simple よりも詳細な情報を表示します。また、リストにはヘッダーや readme ファイルも含むことができます。

magnus.conf 内の Init クラス関数 cindex-init は、イメージの検索場所を含むインデックスリストの形式を指定します。

obj.confService 段階内の index-common への呼び出しが含まれている場合、magnus.conf は、Init 段階中に cindex-init を呼び出すことによって拡張 (または共通) インデックス処理を初期化しなければなりません。

インデックス処理は、要求されたリソースがインデックスファイルまたはホームページを含まないディレクトリのとき、あるいは、関数 find-index または home-page によってインデックスファイルやホームページが指定されていないときに発生します。

表示されるアイコンは .gif ファイルで、ファイルの content-type によって異なります。

"text/*"

text.gif

"image/*"

image.gif

"audio/*"

sound.gif

"video/*"

movie.gif

"application/octet-stream"

binary.gif

ディレクトリ

menu.gif

ほかのすべて

unknown.gif


パラメータ

header

(省略可能) ディレクトリリスティングの先頭にある、ディレクトリの内容を紹介するパス (インデックスされるディレクトリに対して相対) とファイルの名前 (HTML またはプレーンテキスト)。最初にこのファイルは、末尾に追加されている .html で検索されます。見つかった場合は、ディレクトリリストの先頭近くに HTML として組み込まれます。見つからない場合、このファイルは .html を除いた部分で検索され、事前フォーマット済みのプレーンテキスト (<PRE> で囲まれたもの) として組み込まれます。

readme

(省略可能) ディレクトリリスティングに付加するパス (インデックスされるディレクトリに対して相対) とファイルの名前 (HTML またはプレーンテキスト) です。このファイルは、著作権、作者、またはその他の情報など、ディレクトリの内容に関するより詳細な情報を提供することがあります。最初にこのファイルは、末尾に追加されている .html で検索されます。見つかった場合は、ディレクトリリストの最下部に HTML として組み込まれます。見つからない場合、このファイルは .html を除いた部分で検索され、事前フォーマット済みのプレーンテキスト (<PRE> と </PRE> で囲まれたもの) として組み込まれます。

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn=index-common type=magnus-internal/directory method=(GET|HEAD) header=hdr readme=rdme.txt



関連項目
cindex-init, index-simple, find-index, home-page


index-simple

Service クラス指令で適用可能です。

index-simple 関数は、要求されたディレクトリ内のファイルのシンプルなインデックスを生成します。これは、ディレクトリを走査し、そのディレクトリ内のファイルとディレクトリをビュレット付きのリストで HTML ページとしてブラウザに表示します。このリストはアルファベット順にソートされています。ピリオド (.) で始まるファイルは表示されません。各項目は 1 つの HTML リンクとして表示されます。

インデックス処理は、要求されたリソースがインデックスファイルまたはホームページのいずれかを含まないディレクトリのとき、あるいは、関数 find-index または home-page によってインデックスファイルやホームページが指定されていないときに発生します。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service type=magnus-internal/directory fn=index-simple



関連項目
cindex-init, index-common


key-toosmall

Service クラス指令で適用可能です。



  この関数は下位互換性のためにのみ提供されているもので、iPlanet Web Server 4.x では推奨されていませんでした。これは PathCheck クラス SAF ssl-check と置き換えられます。

 



key-toosmall 関数は、SSL 通信用の秘密鍵サイズが小さすぎることをクライアントに示すメッセージを返します。この関数は、Client タグと一緒に使用して、エクスポートできないブラウザに対して特定のディレクトリへのアクセスを制限するよう設計されています。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




<Object ppath=/mydocs/secret/*>
Service fn=key-toosmall
</Object>



list-dir

Service クラス指令で適用可能です。

list-dir 関数は、メソッドが INDEX である要求に応えて、一連のテキスト行をクライアントに返します。返される行の形式は次のとおりです。

name type size mtime

name フィールドは、ファイルまたはディレクトリの名前です。これは、インデックスされるディレクトリに対して相対です。これは URL エンコーディングされています。つまり、文字は %xx で表されます。xx は、文字の ASCII 番号の 16 進表現です。

type フィールドは、text/html のような MIME タイプです。ディレクトリはタイプ directory になります。サーバにタイプがないファイルのタイプは、unknown になります。

size フィールドは、バイト単位のファイルのサイズです。

mtime フィールドは、ファイルの最後の更新日時の数値表現です。この数は、epoch (1970 年 1 月 1 日、00:00、協定世界時) 以降の、ファイルの最後の更新日時までの秒数です。

サーバでリモートファイル操作が使用可能なとき、obj.conf ファイルには、メソッドが INDEX である要求に対する list-dir を呼び出す Service クラス関数が含まれます。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn=list-dir method="INDEX"



make-dir

Service クラス指令で適用可能です。

make-dir 関数は、メソッドが MKDIR である要求をクライアントが送信するときに、ディレクトリを作成します。サーバがそのディレクトリに書き込みできない場合、この関数は失敗します。

サーバでリモートファイル操作が使用可能なとき、obj.conf ファイルには、要求メソッドが MKDIR のときに make-dir を起動する Service クラス関数が含まれます。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn="make-dir" method="MKDIR"



query-handler

Service クラス指令で適用可能です。



  この関数は下位互換性のためにのみ提供されているもので、主に、古い ISINDEX タグをサポートするために使われます。可能であれば、代わりに HTML 形式を使用してください。

 



query-handler 関数は、要求されたパスを参照する代わりに、CGI プログラムを実行します。


パラメータ

path

実行する CGI プログラムの絶対パスとファイル名です。

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service query=* fn=query-handler path=/http/cgi/do-grep

Service query=* fn=query-handler path=/http/cgi/proc-info



remove-dir

Service クラス指令で適用可能です。

remove-dir 関数は、メソッドが RMDIR である要求をクライアントが送信するときに、ディレクトリを削除します。ディレクトリは空 (中にファイルがない状態) でなければなりません。ディレクトリが空でない場合、またはサーバにディレクトリを削除する特権がない場合、この関数は失敗します。

サーバでリモートファイル操作が使用可能なとき、obj.conf ファイルには、要求メソッドが RMDIR のときに remove-dir を起動する Service クラス関数が含まれます。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn="remove-dir" method="RMDIR"



remove-file

Service クラス指令で適用可能です。

remove-file 関数は、メソッドが DELETE である要求をクライアントが送信するときに、ファイルを削除します。ユーザが承認されており、サーバが必要なファイルシステム特権を持っている場合に、URL で示されているファイルを削除します。

サーバでリモートファイル操作が使用可能なとき、obj.conf ファイルには、要求メソッドが DELETE のときに remove-file を起動する Service クラス関数が含まれます。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn="remove-file" method="DELETE"



rename-file

Service クラス指令で適用可能です。

rename-file 関数は、メソッドが MOVENew-URL ヘッダーを持つ要求をクライアントが送信するときに、ファイルの名前を変更します。ユーザが承認されており、サーバが必要なファイルシステム特権を持っている場合は、URL で示されているファイルの名前を同じディレクトリ内で New-URL へ変更します。

サーバでリモートファイル操作が使用可能なとき、obj.conf ファイルには、要求メソッドが MOVE のときに rename-file を起動する Service クラス関数が含まれます。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn="rename-file" method="MOVE"



send-cgi

Service クラス指令で適用可能です。

send-cgi 関数は、CGI 環境変数を設定し、新しいプロセスでファイルを CGI プログラムとして実行し、その結果をクライアントに送信します。

CGI 環境変数とそれらに対応する NSAPI についての詳細は、「CGI から NSAPI への変換」の節を参照してください。

CGI の詳細は、iPlanet Web Server の『管理者ガイド』および iPlanet Web Server の『プログラマーズガイド 』を参照してください。

CGI バッファのフラッシュに使用するタイミングを変更する方法は、3 つあります。

  • フラッシュ間の間隔を flushTimer パラメータを使って調整する

  • バッファサイズを UseOutputStreamSize パラメータを使って調整する

  • CGI スクリプトの中のバッファに強制的にスペースを加えて、iPlanet Web Server に強制的にそのバッファをフラッシュさせる

flushTimer および UseOutputStreamSize の詳細は、「バッファ化されたストリーム」を参照してください。


パラメータ

user

(UNIX の場合のみ) CGI プログラムを実行するユーザの名前を指定します。

group

(UNIX の場合のみ) CGI プログラムを実行するグループの名前を指定します。

chroot

(UNIX の場合のみ) 実行を始める前に chroot するディレクトリを指定します。これは、magnus.conf. に定義された chroot に相当するものです。

dir

(UNIX の場合のみ) 実行を始める前に、chroot の後に chdir するディレクトリを指定します。

rlimit_as

(UNIX の場合のみ) CGI プログラムの最大アドレス空間 (バイト単位) を指定します。現在の (弱い) 制限値と最大の (強い) 制限値の両方を、コンマで区切って指定できます。最初に弱い制限値がリストされる必要があります。制限値を 1 つしか指定しない場合、両方の制限値がその値に設定されます。

rlimit_core

(UNIX の場合のみ) CGI プログラムの最大コアファイルサイズを指定します。値 0 はコアの書き込みを禁止します。現在の (弱い) 制限値と最大の (強い) 制限値の両方を、コンマで区切って指定できます。最初に弱い制限値がリストされる必要があります。制限値を 1 つしか指定しない場合、両方の制限値がその値に設定されます。

rlimit_nofile

(UNIX の場合のみ) CGI プログラムのファイル記述子の最大数を指定します。現在の (弱い) 制限値と最大の (強い) 制限値の両方を、コンマで区切って指定できます。最初に弱い制限値がリストされる必要があります。制限値を 1 つしか指定しない場合、両方の制限値がその値に設定されます。

nice

(UNIX の場合のみ) サーバに対する CGI プログラムの優先度を決定する増分値を受け入れます。通常、サーバは nice 値 0 で稼働し、nice 増分値は、0 (CGI プログラムはサーバと同じ優先度で実行する) と 19 (CGI プログラムはサーバよりかなり低い優先度で実行する) の間の値になります。nice 増分値 -1 を指定することによってCGI プログラムの優先度をサーバの優先度より大きくすることはできますが、これは推奨されません。

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通



次の例では、send-cgi パラメータとしてserver.xml ファイルに定義されている変数を使用します。変数の定義の詳細は、第 8 章「仮想サーバの構成ファイル」を参照してください。


<Object name="default">
...
NameTrans fn="pfx2dir" from="/cgi-bin" dir="/home/foo.com/public_html/cgi-bin" name="cgi"
...
</Object>

<Object name="cgi">
ObjectType fn="force-type" type="magnus-internal/cgi"
Service fn="send-cgi" user="$user" group="$group" dir="$dir" chroot="$chroot" nice="$nice"
</Object>


send-file

Service クラス指令で適用可能です。

send-file 関数は、要求されたファイルの内容をクライアントに送信します。これは、content-typecontent-length、および last-modified ヘッダーを提供します。

ほとんどの要求は、次の指令を使ってこの関数で処理されます (通常この指令は、デフォルトとして機能するように、デフォルトオブジェクト内の Service クラス指令のリストの最後に来ます)。

Service method="(GET|HEAD|POST)" type="*~magnus-internal/*" fn="send-file"

この指令は、要求のメソッドが GETHEAD、または POST で、タイプが magnus-internal/ で始まらない場合に起動されます。*~ というパターンは「一致しない」ことを意味するので、注意してください。パターンで使用できる文字のリストは、付録 C「ワイルドカードパターン」を参照してください。


パラメータ

nocache

(省略可能) サーバが静的ファイル要求への応答をキャッシュしないようにします。たとえば、特定のディレクトリ内のファイルがキャッシュされないように指定することができます。これは、頻繁にファイルが変わるディレクトリの場合に便利です。

このパラメータに割り当てる値は無視されます。このパラメータを使用したくない場合は、省略します。

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service type="*~magnus-internal/*" method="(GET|HEAD)" fn="send-file"


次の例では、URL 接頭辞 /myurl で要求されたとき、サーバは静的ファイルを /export/mydir/ からキャッシュしません。


<Object name=default>
...
NameTrans fn="pfx2dir" from="/myurl" dir="/export/mydir", name="myname"
...
Service method=(GET|HEAD|POST) type=*~magnus-internal/* fn=send-file
...
</Object>
<Object name="myname">
Service method=(GET|HEAD) type=*~magnus-internal/* fn=send-file nocache=""
</Object>


send-range

Service クラス指令で適用可能です。

クライアントが HTTP バイト範囲を指定することによってドキュメントの一部を要求すると、send-range 関数はその部分を返します。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn=send-range



send-shellcgi

Service クラス指令で適用可能です。

Windows NT の場合のみ : send-shellcgi 関数は、ファイルをシェル CGI プログラムとして実行し、その結果をクライアントに送信します。シェル CGI は、Windows NT のファイル関連付けセットを使って CGI アプリケーションを実行するための、サーバ構成です。シェル CGI プログラムの詳細は、iPlanet Web Server の『管理者ガイド』を参照してください。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn=send-shellcgi

Service type=magnus-internal/cgi fn=send-shellcgi



send-wincgi

Service クラス指令で適用可能です。

Windows NT の場合のみ : send-wincgi 関数は、ファイルを Windows CGI プログラムとして実行し、その結果をクライアントに送信します。Windows CGI プログラムの詳細は、iPlanet Web Server の『管理者ガイド』を参照してください。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn=send-wincgi

Service type=magnus-internal/cgi fn=send-wincgi



service-dump

Service クラス指令で適用可能です。

service-dump 関数は、収集されたパフォーマンスバケットデータに基づいて、パフォーマンスレポートを作成します (「バケットパラメータ」を参照)。

レポートを読むには、次のブラウザをポイントします。

http://server_id:port/.perf


パラメータ

type

この関数の perf でなければなりません。

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




<Object name=default>
NameTrans fn="assign-name" from="/.perf" name="perf"
...
</Object>

<Object name=perf>
Service fn="service-dump"
</Object>



関連項目
stats-xml


shtml_send

Service クラス指令で適用可能です。

shtml_send 関数は、組み込みコマンドを走査して、HTML ドキュメントを構文解析します。これらのコマンドは、サーバからの情報の提供、ほかのファイルの内容の組み込み、または CGI プログラムの実行を行ないます。shtml_send 関数は、Shtml プラグイン (UNIX では libShtml.so 、Windows NT では libShtml.dll) が読み込まれているときにのみ利用可能です。サーバが構文解析する HTML コマンドについては、iPlanet Web Server の『プログラマーズガイド』を参照してください。


パラメータ

ShtmlMaxDepth

許可される include の入れ子の最大の深さ。デフォルト値は 10 です。

addCgiInitVars

(UNIX の場合のみ) 指定されていて yes (デフォルトは no) と等しい場合、init-cgi SAF に定義されている環境変数を、SHTML exec タグによって実行されるコマンドの環境に追加します。

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service type=magnus-internal/shtml_send method=(GET|HEAD) fn=shtml_send



stats-xml

Service クラス指令で適用可能です。

stats-xml 関数は、パフォーマンスレポートを XML 形式で作成します。パフォーマンスバケットがすでに定義されていれば、それらがこのパフォーマンスレポートに取り込まれます。

ただし、magnus.conf 内の stats-init 関数を使ってこの関数を初期化してから、NameTrans 関数を使って要求を stats-xml 関数に送る必要があります。下記の例を参照してください。

レポートは次のように生成されます。

http://server_id:port/stats-xml/iwsstats.xml

関連する DTD ファイルは次のようになります。

http://server_id:port/stats-xml/iwsstats.dtd

iwsstats.xml ファイルの形式の詳細は、『Performance Tuning, Sizing, and Scaling Guide for iPlanet Web Server』を参照してください。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通



magnus.conf の場合 :


Init fn="stats-init" update-interval="5" virtual-servers="2000" profiling="yes"

obj.conf の場合 :


<Object name="default">
...
NameTrans fn="assign-name" from="/stats-xml/*" name="stats-xml"
...
</Object>
...
<Object name="stats-xml">
Service fn="stats-xml"
</Object>


関連項目
service-dump, stats-init


upload-file

Service クラス指令で適用可能です。

upload-file 関数は、メソッドが PUT の要求をクライアントが送信したときに、ユーザが承認されておりサーバに必要なファイルシステム特権がある場合、新しいファイルをアップロードして保存します。

サーバでリモートファイル操作が使用可能なとき、obj.conf ファイルには、要求メソッドが PUT のときに upload-file を起動する Service クラス関数が含まれます。


パラメータ

type

省略可能、すべての Service クラス関数に共通

method

省略可能、すべての Service クラス関数に共通

query

省略可能、すべての Service クラス関数に共通

UseOutputStreamSize

省略可能、すべての Service クラス関数に共通

flushTimer

省略可能、すべての Service クラス関数に共通

ChunkedRequestBufferSize

省略可能、すべての Service クラス関数に共通

ChunkedRequestTimeout

省略可能、すべての Service クラス関数に共通

bucket

省略可能、すべての obj.conf 関数に共通




Service fn=upload-file




AddLog 段階



サーバが要求に応答した後、AddLog 指令は、トランザクションに関する情報の記録のために実行されます。

AddLog 指令が複数ある場合、すべてが実行されます。

この節では、次の AddLog クラス関数について詳しく説明します。

  • common-log は、要求に関する情報を共通ログ形式で記録します。

  • flex-log は、要求に関する情報を、柔軟で構成可能な形式で記録します。

  • record-useragent は、クライアントの IP アドレスとユーザエージェントのヘッダーを記録します。


common-log

AddLog クラス指令で適用可能です。

この関数は、要求に固有のデータを共通ログ形式 (ほとんどの HTTP サーバで使用される) で記録します。ログアナライザが iPlanet Web Server の /extras/log_anly ディレクトリにあります。

共通ログは、init-clf 関数によってあらかじめ初期化されていなければなりません。ログのローテーションについての詳細は、flex-rotate-initを参照してください。

共通ログ形式用のフリーの統計ジェネレータも、多数あります。


パラメータ

name

(省略可能) ログファイルの名前を指定します。この名前は、magnus.conf 内の init-clf 関数へのパラメータとして指定されている必要があります。名前が指定されていない場合、エントリはグローバルログファイルに記録されます。

iponly

(省略可能) サーバに、DNS 名を調べてログをとるのではなく、リモートクライアントの IP アドレスのログをとるよう指示します。magnus.conf ファイルで DNS がオフの場合、これによってパフォーマンスが向上します。iponly の値は、存在しさえすれば特別な意味はなく、 iponly=1 を使用することもできます。

bucket

省略可能、すべての obj.conf 関数に共通




# すべてのアクセスのログをグローバルログファイルに記録する
AddLog fn=common-log
# サブネット (198.93.5.*) の外部からのアクセスログを
# nonlocallog に記録する
<Client ip="*~198.93.5.*">
AddLog fn=common-log name=nonlocallog
</Client>


関連項目
flex-init, init-clf, record-useragent, flex-log, flex-rotate-init


flex-log

AddLog クラス指令で適用可能です。

この関数は、要求に固有のデータを、柔軟なログ形式で記録します。共通ログ形式で要求を記録することもできます。ログアナライザが、iPlanet Web Server の /extras/flexanlg ディレクトリにあります。

共通ログ形式用のフリーの統計ジェネレータも、多数あります。

このログ形式は、flex-init 関数呼び出しによって指定されます。ログのローテーションについての詳細は、flex-rotate-initを参照してください。


パラメータ

name

(省略可能) ログファイルの名前を指定します。この名前は、magnus.conf 内の flex-init 関数へのパラメータとして指定されている必要があります。名前が指定されていない場合、エントリはグローバルログファイルに記録されます。

iponly

(省略可能) サーバに、DNS 名を調べてログをとるのではなく、リモートクライアントの IP アドレスのログをとるよう指示します。magnus.conf ファイルで DNS がオフの場合、これによってパフォーマンスが向上します。iponly の値は存在しさえすれば特別な意味はなく、 iponly=1 を使用することもできます。

bucket

省略可能、すべての obj.conf 関数に共通




# すべてのアクセスログをグローバルファイルに記録する
AddLog fn=flex-log
# サブネット (198.93.5.*) の外部からのアクセスログを
# nonlocallog に記録する
<Client ip="*~198.93.5.*">
AddLog fn=flex-log name=nonlocallog
</Client>


関連項目
flex-init, init-clf, common-log, record-useragent, flex-rotate-init


record-useragent

AddLog クラス指令で適用可能です。

record-useragent 関数は、クライアントの IP アドレスと、その後に User-Agent HTTP ヘッダーを記録します。これは、このトランザクション用に使用された Netscape Navigator (またはほかのクライアント) のバージョンを示します。

ログのローテーションの詳細は、flex-rotate-initを参照してください。


パラメータ

name

(省略可能) ログファイルの名前を指定します。この名前は、magnus.conf 内の init-clf 関数へのパラメータとして指定されている必要があります。名前が指定されていない場合、エントリはグローバルログファイルに記録されます。

bucket

省略可能、すべての obj.conf 関数に共通




# クライアント IP アドレスと User-Agent を browserlog に記録する
AddLog fn=record-useragent name=browserlog



関連項目
flex-init, init-clf, common-log, flex-log, flex-rotate-init



Error 段階



サーバアプリケーション関数がエラーとなる場合、HTTP 応答の状態コードを設定し、値 REQ_ABORTED を返します。このような状況が発生すると、サーバは要求の処理を停止します。その代わりに、サーバは、HTTP 応答の状態コードまたはそれに関連する原因を示す句と一致する Error 指令を検索し、その指令の関数を実行します。一致する Error 指令を見つけられない場合、サーバはクライアントに応答状態コードを返します。

この節では、次の Error クラス関数について詳しく説明します。

  • send-error は、HTML ファイルを特定の HTTP 応答状態の代わりにクライアントに送信します。

  • qos-error は、エラーを発生させたサービス品質の制限と QOS 統計の値を示す、エラーページを返します。


send-error

Error クラス指令で適用可能です。

send-error 関数は、HTML ファイルを特定の HTTP 応答状態の代わりにクライアントに送信します。これによりサーバは、問題を記述するわかりやすいメッセージを提示することができます。HTML ページには、イメージや、サーバのホームページ、ほかのページへのリンクが含まれていることもあります。


パラメータ

path

クライアントに送信する HTML ファイルのファイルシステムの絶対パスを指定します。ファイルは、その名前や実際のタイプとは無関係に、text/html として送信されます。ファイルが存在しない場合、サーバは単純なデフォルトのエラーページを送信します。

reason

(省略可能) 原因を示す文字列 (「Unauthorized」や「Forbidden」など) のいずれかのテキストです。文字列は大文字と小文字で区別されません。

code

(省略可能) 401 や 407 などの、HTTP 応答の状態コードを表す 3 桁の数字です。

これは、HTTP 応答の状態コード、または HTTP の仕様に従った原因を示す文字列にすることができます。

次に、共通の HTTP 応答状態コードと原因を示す文字列のリストを示します。

  • 401 Unauthorized.

  • 403 Forbidden.

  • 404 Not Found.

  • 500 Server Error.

bucket

省略可能、すべての obj.conf 関数に共通




Error fn=send-error code=401 path=/netscape/server4/docs/errors/401.html



qos-error

Error クラス指令で適用可能です。

qos-error 関数は、エラーを発生させたサービス品質の制限と QOS 統計の値を示す、エラーページを返します。

この SAF 用のコードは、第 6 章「カスタム SAF の例」の例の 1 つにあります。

詳細は、iPlanet Web Server の『管理者ガイド』のパフォーマンスについての章を参照してください。


パラメータ

code

(省略可能) 401 や 407 などの、HTTP 応答の状態コードを表す 3 桁の数字です。推奨される値は 503 です。

これは、HTTP 応答の状態コード、または HTTP の仕様に従った原因を示す文字列にすることができます。

次に、共通の HTTP 応答状態コードと原因を示す文字列のリストを示します。

  • 401 Unauthorized.

  • 403 Forbidden.

  • 404 Not Found.

  • 500 Server Error.

bucket

省略可能、すべての obj.conf 関数に共通




Error fn=qos-error code=503



関連項目
qos-handler


前へ     目次     索引     DocHome     次へ     
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated September 24, 2001