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



第 7 章   magnus.conf の構文と使用法


iPlanet Web Server は、起動時に server-id/config ディレクトリにある magnus.conf というファイルを調べて、サーバの動作と構成に影響する 1 組のグローバル変数設定を確立します。iPlanet Web Server は、magnus.conf で定義されているすべての指令を実行します。

Init SAF を除けば、magnus.conf 内の指令は、次の例に示すように、変数と値を指定します。


ServerID https-boots.mcom.com
#ServerRoot d:/netscape/server4/https-boots.mcom.com

指令の順序は重要ではありません。



  magnus.conf ファイルを編集するときは、変更内容を有効にするためにサーバを再起動する必要があります。

 



この章では、iPlanet Web Server 6.0 の magnus.conf で指定できるグローバル設定をリスト表示します。

次のカテゴリがあります。

指令のアルファベット順リストについては、付録 H「magnus.conf 内の指令のアルファベット順リスト」を参照してください。



  ファイルキャッシュの機能の多くは、nsfc.conf という構成ファイルによって制御されます。nsfc.conf については、『Performance Tuning, Sizing, and Scaling Guide for iPlanet Web Server』を参照してください。

 





Init SAF



Init 指令は、サーバを初期化します。たとえば、追加のモジュールとプラグインの読み込みと初期化、およびログファイルの初期化を行ないます。

Init 指令は obj.conf 指令と同様 SAF であり、ほかの magnus.conf 指令の単純な variable value 構文とは異なる SAF 構文を持っています。これらの指令は、ほかの magnus.conf 指令と同様にサーバ起動時に一回だけ実行されるため、magnus.conf に置かれています。

Init 指令には、省略可能な LateInit パラメータがあります。 UNIX プラットフォームでは、 LateInityes に設定されている場合、この関数は、親プロセスからフォークされた後に子プロセスによって実行されます。 LateInitno に設定されているか、何も指定されていない場合、この関数はフォークの前に親プロセスによって実行されます。サーバがユーザ root によって起動されたのに、別のユーザとして稼動するときは、ユーザ root として実行すべきアクティビティ (root が所有するファイルへの書き込みなど) はすべて、フォークの前に実行しなければなりません。 thread-pool-init 以外の、スレッドを作成する関数は、フォークの後に実行する必要があります (つまり、関連する Init 指令には LateInit=yes の設定が必要です)。

どのプラットフォームでも、完全に構文解析された構成にアクセスする必要がある関数には、その Init 指令に LateInit=yes の設定が必要です。

障害発生時には、Init クラスの関数は REQ_ABORTED を返します。サーバでは、obj.conf にある Error 指令の命令に従ってエラーのログを記録して終了します。ほかの結果コードは、すべて成功とみなされます。

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

  • cindex-init は、拡張インデックス化のデフォルト特性を変更します。

  • define-perf-bucket は、パフォーマンスバケットを作成します。

  • dns-cache-init は、DNS キャッシングを構成します。

  • flex-init は、柔軟なログ作成システムを初期化します。

  • flex-rotate-init は、柔軟なログのローテーションを有効にします。

  • init-cgi は、CGI プログラムのデフォルトの設定を変更します。

  • init-clf は、共通ログのサブシステムを初期化します。

  • init-uhome は、ユーザのホームディレクトリ情報を読み込みます。

  • load-modules は、共用ライブラリをサーバに読み込みます。

  • nt-console-init は、NT コンソールを有効にします。NT コンソールは、標準の出力とエラーストリームを表示するコマンド行シェルです。

  • perf-init は、パフォーマンスバケットを介したシステムパフォーマンスの測定を有効にします。

  • pool-init は、プールされたメモリーの割り当てを構成します。

  • register-http-method は、新しい HTTP メソッドを登録することによって HTTP プロトコルの拡張を可能にします。

  • stats-init は、XML 形式のパフォーマンス統計のレポート作成を有効にします。

  • thread-pool-init は、追加のスレッドプールを構成します。


cindex-init

Init クラス指令で適用可能。

関数 cindex-init は、共通のインデックス化のための、デフォルトの設定を行ないます。共通インデックス化 (拡張インデックス化ともいう) は、サービス関数 index-common によって実行されます。インデックス化は、要求された URL がインデックスファイルまたはホームページを含まないディレクトリに変換されるとき、またはインデックスファイルやホームページが指定されていないときに発生します。

共通 (拡張) インデックス化では、インデックス化されたファイルまたはディレクトリごとの名前、最終更新日、サイズ、および説明がディレクトリリストに表示されます。


パラメータ :

opts

(省略可能) 有効化するオプションを指定する文字列です。現在のところ、使用できるオプションは 1 つだけです。

s は、説明フィールドに表示する HTML の <TITLE> タグの内容について、ディレクトリ内のインデックス化される各 HTML ファイルを走査するようサーバに伝えます。<TITLE> タグは、ファイルの最初の 255 文字内になければなりません。デフォルトでは、このオプションはオフになっています。

<TITLE> の検索では、大文字と小文字は区別されません。

widths

(省略可能) インデックス表示内の各列の幅を指定します。文字列は、名前、最終更新日、サイズ、および説明の文字の列の幅をそれぞれ指定する、数字をコンマで区切ったリストです。

widths パラメータのデフォルトの値は、22,18,8,33 です。

最後の 3 つの値 (それぞれ、最終更新日、サイズ、説明に対応する) をそれぞれ 0 に設定すれば、その列の表示をオフにすることができます。名前の列はオフにすることはできません。列の最小サイズ (0 以外の値の場合) は、そのタイトルの長さによって指定されます。たとえば、「Date」列の最小サイズは 5 です (「Date」の長さにスペースを 1 つ加えた長さ)。列に対してタイトルの長さより短い 0 以外の値を設定すると、その幅がタイトルの表示に必要な最小の値にデフォルトとして設定されます。

timezone

(省略可能) これは、最終更新日を現地時間とグリニッジ標準時のどちらで表示するかを示します。値は、GMT または local です。デフォルトは local です。

format

(省略可能) このパラメータは、最終更新日の表示書式を決定します。これは、UNIX 関数 strftime() の書式仕様を使用します。

デフォルトは %d-%b-%Y %H:%M です。

ignore

(省略可能) インデックス化中にサーバが無視すべきファイル名のワイルドカードパターンを指定します。ピリオド (.) で始まるファイル名は、常に無視されます。デフォルトでは、ピリオド (.) で始まるファイル名だけを無視します。

icon-uri

(省略可能) ファイルのアイコン (.gif ファイル) の URL を生成するときに index-common 関数が使用する URI 接頭辞を指定します。デフォルトでは、/mc-icons/ です。icon-uri がデフォルトとは異なる場合は、サーバがこれらのアイコンを見つけられるように、NameTrans 指令にある pfx2dir 関数を変更する必要があります。


例 :


Init fn=cindex-init widths=50,1,1,0

Init fn=cindex-init ignore=*private*

Init fn=cindex-init widths=22,0,0,50



関連項目
index-commonfind-indexhome-page


define-perf-bucket

Init クラス指令で適用可能。

define-perf-bucket 関数は、obj.conf にある SAF のパフォーマンスの測定に使用できるパフォーマンスバケットを作成します (「バケットパラメータ」 および service-dump 関数を参照)。この関数は、perf-init 関数が有効な場合に限り機能します。

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


パラメータ

name

バケットの名前。たとえば、cgi-bucket

description

バケットの測定対象の説明。たとえば、CGI Stats


例 :


Init fn="define-perf-bucket" name="cgi-bucket" description="CGI Stats"



関連項目
perf-init


dns-cache-init

Init クラス指令で適用可能。

dns-cache-init 関数は、DNS 検索が有効になっているときに DNS 検索がキャッシュされるよう指定します。DNS 検索がキャッシュされている場合は、サーバがクライアントのホスト名情報を取得するときに、その情報を DNS キャッシュに格納します。将来、サーバがクライアントに関する情報を必要とする場合は、DNS キャッシュのこの情報を利用できます。

DNS キャッシュのサイズと、キャッシュエントリが無効になるまでの時間を指定することができます。DNS キャッシュには、32 〜 32768 のエントリを含めることができ、デフォルト値は 1024 エントリです。キャッシュエントリの期限切れまでの時間の値 (秒単位で指定) は、1 秒から 1 年の範囲で指定でき、デフォルト値は 1200 秒 (20 分) です。


パラメータ

cache-size

(省略可能) キャッシュに含めるエントリの数を指定します。指定できる値は 32 〜 32768 で、デフォルト値は 1024 です。

expire

(省略可能) キャッシュエントリの期限が切れるまでの時間 (秒単位) を指定します。指定できる値は 1 〜 31536000 (1 年) で、デフォルトは 1200 秒 (20 分) です。


例 :


Init fn="dns-cache-init" cache-size="2140" expire="600"



flex-init

Init クラス指令で適用可能。

flex-init 関数は、柔軟なログ作成に使用する指定されたログファイルを開き、その記録の書式を確立します。ログ書式は、ログファイルの最初の行に記録されます。サーバがログファイルを使用している間は、ログ書式の変更はできません。

flex-log 関数は、要求処理プロセスの AddLog 段階中に、ログファイルにエントリを書き込みます。

サーバがシャットダウンまたは再起動するまで、ログファイルは開いたままになります。シャットダウンまたは再起動時に、すべてのログが閉じられ、再度開かれます。



  flex-log を呼び出す AddLog 段階指令がサーバにある場合、柔軟なログファイルはサーバの初期化中に flex-init によって初期化されなければなりません。

 



複数のログファイル名を同じ flex-init 関数呼び出しで指定することができます。その後、flex-log 関数を持つ複数の AddLog 指令を使って、各ログファイルへのトランザクションを記録します。

flex-init 関数は、複数回呼び出すことができます。それぞれの新しいログファイル名と書式は、ログファイルのリストに追加されます。

現在アクティブなログファイルを、サーバをシャットダウンまたは再起動せずに移動、削除、または変更すると、クライアントのアクセスが記録されないことがあります。現在アクティブなログファイルを保存またはバックアップするには、ファイル名を変更してからサーバを再起動する必要があります。サーバは最初にログファイルを名前で検索し、見つからなければ、新しいログファイルを作成します (ユーザが使用できるように、名前を変更された元のログファイルは残っています)。

ログファイルのローテーションについては、flex-rotate-initを参照してください。

flex-init 関数には、次の 3 つのパラメータがあります。ログファイルに名前を付けるパラメータ、そのファイルの各レコードの書式を指定するパラメータ、およびログ作成のモードを指定するパラメータです。


パラメータ

logFileName

パラメータの名前は、ログファイルの名前です。パラメータの値は、ログファイルへの絶対パス、またはサーバの logs ディレクトリに対して相対パスとなるファイル名のいずれかを指定します。次に例を示します。

access="/usr/netscape/server4/https-servername/logs/access"

mylogfile = "log1"

このログファイル名は、後で flex-log 関数へのパラメータとして使用します。

format.logFileName

ログファイル内の各ログエントリの書式を指定します。

書式については、後述の「ログ書式の詳細」を参照してください。

buffer-size

グローバルログバッファのサイズを指定します。デフォルトは 8192 です。後述の 3 番目の flex-init の例を参照してください。

num-buffers

使用するログ作成バッファの最大数を指定します。デフォルトは 1000 です。後述の 3 番目の flex-init の例を参照してください。


ログ書式の詳細
flex-init 関数は、パーセント記号 (%) で囲まれた部分を、サーバのパラメータブロックに格納されている名前 - 値ペアの名前部分として認識します。(この規則の唯一の例外は、現在のシステム日付を配信する %SYSDATE% コンポーネントです。) %SYSDATE% は、時刻の書式 %d/%b/%Y:%H:%M:%S にグリニッジ標準時からのオフセットを加えたものを使って書式設定されます。

(パラメータブロックの詳細は 第 4 章「カスタム SAF の作成」を、pblock を操作する関数については 第 5 章「NSAPI 関数のリファレンス」を参照してください。)

追加のテキストはすべてリテラルテキストとして扱われるため、行に追加して読みやすくすることができます。書式設定パラメータの一般的なコンポーネントは、表 7-1に一覧表示されています。コンポーネントによってはスペースが含まれることもあるため、エスケープされた引用符 (\") で区切る必要があります。

ログファイルの書式パラメータが全く指定されていない場合は、共通のログ書式が使われます。

"%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%]
\"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status%
%Req->srvhdrs.content-length%"

これで、Req->headers.cookie.name コンポーネントのログを作成することによって、cookie のログを作成することができます。

次の表では、エスケープされた二重引用符 (\") で囲まれたコンポーネントは、空白を含む値へ解決する可能性のあるコンポーネントです。


表 7-1 flex-init 書式の一般的なコンポーネント 

Flex-log オプション

コンポーネント

クライアントホスト名 (flex-log オプションで iponly が指定されていない限り、または DNS 名が使用不可でない限り) または IP アドレス  

%Ses->client.ip%  

クライアント DNS 名  

%Ses->client.dns%  

システム日付  

%SYSDATE%  

完全な HTTP 要求行  

\"%Req->reqpb.clf-request%\"  

状態  

%Req->srvhdrs.clf-status%  

応答内容の長さ  

%Req->srvhdrs.content-length%  

応答内容のタイプ  

%Req->srvhdrs.content-type%  

Referer ヘッダー  

\"%Req->headers.referer%\"  

User-Agent ヘッダー  

\"%Req->headers.user-agent%\"  

HTTP メソッド  

%Req->reqpb.method%  

HTTP URI  

%Req->reqpb.uri%  

HTTP 照会文字列  

%Req->reqpb.query%  

HTTP プロトコルのバージョン  

%Req->reqpb.protocol%  

Accept ヘッダー  

%Req->headers.accept%  

Date ヘッダー  

%Req->headers.date%  

If-Modified-Since ヘッダー  

%Req->headers.if-modified-since%  

Authorization ヘッダー  

%Req->headers.authorization%  

任意のヘッダー値  

%Req->headers.headername%  

承認済みユーザの名前  

%Req->vars.auth-user%  

cookie の値  

%Req->headers.cookie.name%  

Req->vars 内の任意の変数の値  

%Req->vars.varname%  

仮想サーバ ID  

%vsid%  



次の最初の例では、柔軟なログ作成をファイル /usr/netscape/server4/https-servername/logs/access に行なうよう初期化します。


Init fn=flex-init access="/usr/netscape/server4/https-servername/logs/access" format.access="%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] \"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length%"


これにより、次のような項目が記録されます。

  • 後ろに「 - 」という 3 文字が付いた ip またはホスト名

  • 後ろに「 [」という 2 文字が付いたユーザ名

  • 後ろに「] 」という 2 文字が付いたシステム日付

  • 後ろに 1 つのスペースが付いた、引用符で囲まれた完全な HTTP 要求

  • 後ろに 1 つのスペースが付いた、 HTTP 結果状態

  • 内容長


これはデフォルトの書式で、共通ログフォーマット (Common Log Format: CLF) に対応します。

多数のログアナライザが出力として予期しているため、ログの最初の 6 つの要素は、常に上記とまったく同じ書式にするようお勧めします。

2 番目の例では、柔軟なログ作成をファイル /user/netscape/server4/https-servername/logs/extended に行なうよう初期化します。


Init fn=flex-init extended="/usr/netscape/server4/https-servername/logs/extended" format.extended="%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] \"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length% %Req->headers.referer% \"%Req->headers.user-agent%\" %Req->reqpb.method% %Req->reqpb.uri% %Req->reqpb.query% %Req->reqpb.protocol%"


3 番目の例は、要求処理スレッドが、ログファイルに書き込む時に、呼び出しをログフラッシュスレッドへ委託するのではなく、呼び出しをブロックしてしまうのを防ぐように、ログ作成を調整する方法を示しています。

buffer-size および num-buffers パラメータのサイズをデフォルト値の倍にして、LogFlushInterval magnus.conf 指令の値を 4 秒に下げる (第 7 章「magnus.conf の構文と使用法」を参照) と、要求処理スレッドが解放され、ログデータを迅速に書き込むことができます。


Init fn=flex-init buffer-size=16384 num-buffers=2000 access="/usr/netscape/server4/https-servername/logs/access" format.access="%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%] \"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status% %Req->srvhdrs.content-length%"



関連項目
flex-rotate-initflex-log


flex-rotate-init

Init クラス指令で適用可能。

flex-rotate-init 関数は、サーバ上のすべてのログファイルのログのローテーションを構成します。これには、エラーログ、common-logflex-log、および record-useragent AddLog SAF が含まれます。flex-init を呼び出す前に、magnus.confInit セクションにあるこの関数を呼び出します。flex-rotate-init 関数を使うと、ログファイルをローテーションさせる時間間隔を指定できます。サーバは、指定された時間間隔で、名前が移動の時間を示すファイルにログファイルを移動します。次に、obj.confAddLog 段階にあるログ関数が、新しいログファイル内にエントリのログ作成を開始します。ログファイルがローテーションしている間、サーバをシャットダウンしておく必要はありません。



  サーバはすべてのローテーションされたログファイルを永久に保持するので、ディスクスペースの解放のために、必要に応じてそれらをクリーンアップする必要があります。

 



デフォルトでは、ログのローテーションは無効になっています。


パラメータ

rotate-start

ローテーションを開始する時刻を示します。この値は、時刻を 24 時制で示す 4 桁の文字列です。たとえば、0900 は午前 9 時を示し、2100 は午後 9 時を示します。

rotate-interval

ログローテーションとログローテーションの間の経過時間を分単位で示します。

rotate-access

(省略可能) common-logflex-log、および record-useragent ログをローテーションさせるかどうかを決定します。値は、yes (デフォルト) と no です。

rotate-error

(省略可能) エラーログをローテーションさせるかどうかを決定します。値は、yes (デフォルト) と no です。

rotate-callback

(省略可能) ログファイルのローテーションの後に続けて実行する、ユーザが提供したプログラムのファイル名を指定します。このプログラムには、ローテーションされたログファイルのローテーション後の名前が、そのパラメータとして渡されます。



次の例は、ログのローテーションを、深夜 0 時に開始して 1 時間ごとに実施されるようにします。


Init fn=flex-rotate-init rotate-start=2400 rotate-interval=60



関連項目
flex-initcommon-logflex-logrecord-useragent


init-cgi

Init クラス指令で適用可能。

init-cgi 関数は、CGI 実行のための特定の初期化タスクを実行します。次の 2 つのオプションがあります。CGI スクリプトの実行のタイムアウトと、環境変数の確立です。


パラメータ

timeout

(省略可能) サーバが CGI 出力を待機する時間 (秒) を指定します。その指定した時間内に CGI スクリプトが出力を配信しなかった場合、サーバはそのスクリプトを終了します。デフォルト値は 300 秒です。

cgistub-path

(省略可能) CGI スタブバイナリへのパスを指定します。指定しない場合、iPlanet Web Server は、サーバインスタンスの config ディレクトリに対して相対パスとなる次のディレクトリを次の順序で調べます。まず ../private/Cgistub を調べ、次に ../../bin/https/bin/Cgistub を調べます。

suid Cgistub (つまり、set-user-ID-on-exec ビットセットを持つ、root が所有する Cgistub) を収納するには、最初のディレクトリを使用します。suid 以外の Cgistub を収納するには、2 番目のディレクトリを使用します。2 番目のディレクトリは、iPlanet Web Server 4.x サーバが使用する場所です。

存在する場合、../private ディレクトリはサーバユーザが所有し、アクセス権 d??x------ を持っていなければなりません。これにより、ほかのユーザ (たとえば、シェルアカウントまたは CGI アクセス権を持つユーザなど) が Cgistub を使って自分の uid を設定することを防ぎます。

suid Cgistub のインストールについては、iPlanet Web Server の『プログラマーズガイド』を参照してください。

env-variable

(省略可能) サーバが CGI の環境に置く環境変数の名前と値を指定します。環境変数は、1 つの init-cgi 関数内にいくつでも設定できます。




Init fn=init-cgi LD_LIBRARY_PATH=/usr/lib;/usr/local/lib



関連項目
send-cgisend-wincgisend-shellcgi


init-clf

Init クラス指令で適用可能。

init-clf 関数は、共通のログ作成に使われる、指定されたログファイルを開きます。common-log 関数は、要求処理プロセスの AddLog 段階中に、ログファイルにエントリを書き込みます。サーバがシャットダウンされるまで (シャットダウン時にログファイルは閉じられます)、または再起動されるまで (再起動時にログファイルは閉じられ、再度開かれます)、ログファイルは開いたままになります。



  common-log を呼び出す AddLog 段階指令がサーバにある場合、共通ログファイルは初期化中に init-clf によって初期化されなければなりません。

 





  この関数の呼び出しは一回のみにしてください。再度呼び出すと、以前のすべての呼び出しからのログファイル名が新しい呼び出しによって置き換えられます。

 



サーバをシャットダウンまたは再起動せずにログファイルを移動、削除、または変更すると、クライアントのアクセスが記録されないことがあります。ログファイルを保存またはバックアップするには、ファイル名を変更 (UNIX の場合はさらに、-HUP シグナルも送信) してからサーバを再起動する必要があります。サーバは最初にログファイルを名前で検索し、見つからなければ、新しいログファイルを作成します (ユーザが使用できるように、名前を変更された元のログファイルは残っています)。

ログファイルのローテーションについては、flex-rotate-initを参照してください。


パラメータ

 

logFileName

パラメータの名前は、ログファイルの名前です。パラメータの値は、ログファイルへの絶対パス、またはサーバの logs ディレクトリに対して相対パスとなるファイル名のいずれかを指定します。次に例を示します。

access="/usr/netscape/server4/https-servername/logs/access"
mylogfile = "log1"

このログファイル名は、後で common-log 関数へのパラメータとして使用します。




Init fn=init-clf access=/usr/netscape/server4/https-boots/logs/access

Init fn=init-clf templog=/tmp/mytemplog templog2=/tmp/mytemplog2



関連項目
common-logrecord-useragentflex-rotate-init


init-uhome

Init クラス指令で適用可能。

UNIX のみ: init-uhome 関数は、システムのユーザホームディレクトリに関する情報を内部ハッシュテーブルに読み込みます。これによりメモリ使用量が多少増えますが、ホームディレクトリへのトラフィックが大量にあるサーバの場合は、パフォーマンスが向上します。


パラメータ

pwfile

(省略可能) /etc/passwd 以外のファイルへのファイルシステムの絶対パスを指定します。指定しない場合は、デフォルトの UNIX パス (/etc/passwd) が使用されます。




Init fn=init-uhome

Init fn=init-uhome pwfile=/etc/passwd-http



関連項目
unix-homefind-links


load-modules

Init クラス指令で適用可能。

load-modules 関数は、共用ライブラリまたは動的リンクライブラリをサーバコードに読み込みます。ライブラリ中の指定された関数は、それ以降の指令から実行することができます。この関数を使用して、新しいプラグインまたは SAF を読み込みます。

ユーザ独自のサーバアプリケーション関数を定義する場合は、load-modules 関数を使用し、読み込む共用ライブラリまたは dll を指定することによって、サーバにそのサーバアプリケーション関数を読み込ませます。


パラメータ

shlib

共用ライブラリまたは動的リンクライブラリへの絶対パス、またはサーバ構成ディレクトリに対して相対パスとなるファイル名の、いずれかを指定します。

funcs

ほかの Init 指令または obj.confService 指令による使用が可能となる、共用ライブラリまたは動的リンクライブラリ内の関数名の、コンマで区切られたリストです。このリストにはスペースを含めることはできません。関数名では、下線 (_) 文字の代わりにダッシュ (-) 文字を使用することができます。

NativeThread

(省略可能) 使用するスレッドモデルを指定します。

no の場合、ライブラリのルーチンはユーザレベルのスレッドを使用します。

yes の場合、カーネルレベルのスレッドが有効になります。デフォルトは yes です。

pool

thread-pool-init で指定される、カスタムスレッドプールの名前。




Init fn=load-modules shlib="C:/mysrvfns/corpfns.dll" funcs="moveit"

Init fn=load-modules shlib="/mysrvfns/corpfns.so" funcs="myinit,myservice"
Init fn=myinit



nt-console-init

Init クラス指令で適用可能。

nt-console-init 関数は、NT コンソールを有効にします。NT コンソールは、標準の出力とエラーストリームを表示するコマンド行シェルです。


パラメータ

stderr

エラーメッセージを NT コンソールに送信します。必須で唯一の値は、console です。

stdout

出力を NT コンソールに送信します。必須で唯一の値は、console です。




Init fn="nt-console-init" stdout=console stderr=console



perf-init

Init クラス指令で適用可能。

perf-init 関数は、パフォーマンスバケットを介したシステムパフォーマンスの測定を有効にします。

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

パラメータ

disable

パフォーマンスバケットを介したシステムパフォーマンス測定の使用を無効にするフラグ。値は true または false です。デフォルト値は true です。




Init fn=perf-init disable=false



関連項目
define-perf-bucket


pool-init

Init クラス指令で適用可能。

pool-init 関数は、プールされたメモリー設定のデフォルト値を変更します。空きブロックリストのサイズが変更されるか、プールされたメモリーがすべて使用不可になります。

メモリー割り当てプールを使って、サーバを大幅に高速に稼動させることができます。NSAPI を使ってプログラミングしている場合、プールされたメモリーを使用不可にすると、MALLOCREALLOCCALLOCSTRDUP、および FREE が若干異なる動作をするので注意してください。プールが有効な場合、サーバは、各要求が完了したときにこれらのルーチンによって割り当てられたすべてのメモリーを自動的にクリーンアップします。ほとんどの場合、これによってパフォーマンスが向上し、メモリーリークを防ぐことができます。プールが無効になっている場合、すべてのメモリーはグローバルになり、クリーンアップは行なわれません。

持続的なメモリー割り当てにしたい場合は、各ルーチン (PERM_MALLOCPERM_REALLOCPERM_CALLOCPERM_STRDUP、および PERM_FREE) の名前に接頭辞 PERM_ を追加します。



  Init クラス関数から割り当てるメモリーはすべて、MALLOC を使用する場合でも、持続的なメモリーとして割り当てられます。サーバは、要求の処理中に割り当てられるメモリーだけをクリーンアップします。また、Init クラス関数は要求を処理する前に実行されるため、それらのメモリーはグローバルに割り当てられます。

 




パラメータ

free-size

(省略可能) 空きブロックリストの最大サイズ (バイト単位)。1048576 より大きくすることはできません。

disable

(省略可能) プールされたメモリーの使用を無効にするフラグ。値は true または false です。デフォルト値は false です。




Init fn=pool-init disable=true



register-http-method

Init クラス指令で適用可能。

この関数は、新しい HTTP メソッドを登録することによって HTTP プロトコルの拡張を可能にします。(デフォルトの HTTP メソッドを登録する必要はありません。)

サーバは、接続を受け入れるときに、受信したメソッドがサーバにとって既知のものかどうかを確認します。サーバがそのメソッドを認識しない場合は、「501 Method Not Implemented」というエラーメッセージを返します。


パラメータ

methods

登録するメソッドの名前の、コンマで区切られたリストです。



次の例は、register-http-method と、メソッドの 1 つの Service 関数の使用法を示しています。


Init fn="register-http-method" methods="MY_METHOD1,MY_METHOD2"

Service fn="MyHandler" method="MY_METHOD1"



stats-init

Init クラス指令で適用可能。

この関数は、XML 形式のパフォーマンス統計のレポート作成を有効にします。実際のレポートは、obj.confstats-xml 関数によって生成されます。


パラメータ

update-interval

サーバ内での統計更新の間の期間 (秒単位)。パフォーマンスを良くするには大きめの値を設定し、更新の頻度を上げるには低めの値を設定します。最小値は 1 で、デフォルトは 5 です。

virtual-servers

統計の追跡対象になる仮想サーバの最大数。この数は、構成されている仮想サーバの数より大きく設定する必要があります。それより小さい数を設定すると、メモリ使用量が少なくなります。最小値は 1 で、デフォルトは 1000 です。

profiling

yes に設定すると、バケットを使った NSAPI パフォーマンスのプロファイルを有効にします。これは、perf-init Init SAF を使って有効にすることもできます。デフォルトは no で、この場合、サーバのパフォーマンスが多少向上します。




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


関連項目
stats-xml


thread-pool-init

Init クラス指令で適用可能。

この関数は、ユーザスレッドの新しいプールを作成します。プールは、使う前に宣言する必要があります。新しいプールを使用するようプラグインに指示するには、Init クラス関数 load-modules でプラグインを読み込むときにpool パラメータを指定します。

カスタムスレッドプールを作成する理由の 1 つは、プラグインがスレッドを意識しない場合に、プール内のスレッドの最大数を 1 に設定できることです。

古いパラメータ NativeThread=yes は、常に NativePool という 1 つのデフォルトのネイティブプールを専用使用します。

UNIX 上のネイティブプールは、すべてのスレッドが OS レベルのスレッドであるため、通常は専用使用されません。UNIX 上のネイティブプールを使用すると、追加のコンテキストスイッチが必要になるため、パフォーマンスのオーバーヘッドがわずかに発生することがありますが、jvm.stickyAttach の効果のローカライズや、リソースの制御と管理、プラグインのシングルスレッド動作のエミュレートなどのその他の目的に使用することができます。

Windows NT では、常にデフォルトのネイティブプールが使われ、iPlanet Web Server は最初の要求処理のためにファイバ (ユーザがスケジュールしたスレッド) を使用します。Windows NT でカスタムの追加プールを使用しても、余分なオーバーヘッドは発生しません。

さらに、ネイティブスレッドプールのパラメータは、利便性のために magnus.conf ファイルに追加することができます。詳細は、第 7 章「magnus.conf の構文と使用法」「ネイティブスレッドプール」を参照してください。


パラメータ

name

スレッドプールの名前。

maxthreads

プール内のスレッドの最大数。

minthreads

プール内のスレッドの最小数。

queueSize

プールのキューのサイズ。プール内のスレッドがすべて使用中の場合、プールからスレッドを取得しようとしているそれ以降の要求処理スレッドは、プールキューで待機します。キューで待機できる要求処理スレッドの数は、キューのサイズによって制限されます。キューがいっぱいになると、キューに来る次の要求処理スレッドは返され、要求は受け付けられなくなります。ただし、要求処理スレッドは、キュー内でロックされるのではなく、別の要求を処理するために解放されたままです。

stackSize

ネイティブ (カーネル) スレッドプール内の各スレッドのスタックサイズ。




Init fn=thread-pool-init name="my-custom-pool" maxthreads=5 minthreads=1 queuesize=200

Init fn=load-modules shlib="C:/mydir/myplugin.dll" funcs="tracker" pool="my-custom-pool"



関連項目
load-modules



サーバ情報



ここでは、サーバに関する情報を指定する magnus.conf の指令をリストします。それらの指令は次のとおりです。


ExtraPath

指定されたディレクトリ名を PATH 環境変数に付加します。これは、Windows NT での Java の構成に使われます。デフォルト値はないので、必ず値を指定する必要があります。


構文
ExtraPath path


MtaHost

サーバのエージェントが使用する SMTP メールサーバの名前を指定します。この値は、レポートがメールアドレスに送信される前に指定する必要があります。


NetSiteRoot

サーバインスタンスが下にある最上位ディレクトリへの絶対パス名を指定します。この指令は、Administration Server が使用します。デフォルト値はないので、必ず値を指定する必要があります。


構文
NetSiteRoot path


ServerConfigurationFile

仮想サーバの構成ファイルの位置を指定します。


構文
ServerConfigurationFile path


デフォルト
ServerConfigurationFile server_root/server_id/config/server.xml


ServerID

https-boots.mcom.com などのサーバ ID を指定します。


ServerRoot

サーバルートを指定します。この指令はインストール中に設定され、コメントアウトされます。ほかの指令とは異なり、サーバはこの指令が # で始まることを予期します。この指令は変更しないでください。変更すると、サーバマネージャが正しく機能しないことがあります。


構文
#ServerRoot path



#ServerRoot d:/netscape/server4/https-boots.mcom.com


TempDir

サーバが一時ファイル用に使用するローカルボリューム上のディレクトリを指定します。UNIX では、サーバを稼動するユーザが、このディレクトリを所有し、書き込み可能でなければなりません。User および TempDirSecurity 指令も参照してください。


構文
TempDir path


デフォルト
/tmp (UNIX)

TEMP (Windows NT の場合は環境変数)


TempDirSecurity

TempDir ディレクトリがセキュリティ保護されているかをサーバが確認するかどうかを決定します。 UNIX では、TempDirSecurity に off を指定することによって、サーバが /tmp を一時ディレクトリとして使用できます。



警告  

TempDirSecurity に off を指定したり、UNIX で /tmp を一時ディレクトリとして使用することはお勧めできません。 /tmp を一時ディレクトリとして使用すると、潜在的なセキュリティ上のリスクがかなり増すことになります。

 




構文
TempDirSecurity [on|off]


デフォルト
on


User

Windows NT: User 指令は、サーバを稼動するためのユーザアカウントを指定します。特定のユーザアカウント (LocalSystem 以外) を使用することで、サーバに対してシステムの機能を制限したり有効にしたりできます。たとえば、ファイルを別のマシンからマウントできるようなユーザアカウントを使用できます。

UNIX: User 指令は、サーバ用の UNIX ユーザアカウントを指定します。スーパーユーザまたはルートユーザがサーバを起動すると、サーバはユーザが指定する Port にバインドし、次にそのユーザ ID を、User 指令で指定されたユーザアカウントに切り換えます。サーバが root として起動されなかった場合、この指令は無視されます。ユーザが指定するユーザアカウントには、サーバのルートとサブディレクトリに対する読み取り権が必要です。このユーザアカウントには、logs ディレクトリへの書き込みアクセス権と、すべての CGI プログラムに対する実行権が必要です。このユーザアカウントは、構成ファイルへの書き込みアクセス権は持つべきではありません。これにより、万一だれかがサーバを攻撃しても、構成ファイルを変更してマシンに対する広範なアクセス権を取得することはできません。nobody ユーザを使用することはできますが、お勧めはできません。


構文
User name

name は、 ユーザアカウント用の 8 文字以下のログイン名です。


デフォルト
User 指令がない場合、サーバは起動に使われたユーザアカウントを使って稼動します。



User http

User server

User nobody



言語に関する問題



この節では、言語上の問題に関連した magnus.conf の指令をリストします。次の指令があります。


AdminLanguage

国際バージョンのサーバの場合、この指令はサーバマネージャ用の言語を指定します。値は、en (英語)、fr (フランス語)、de (ドイツ語)、または ja (日本語) です。


デフォルト
デフォルトは en です。


ClientLanguage

国際バージョンのサーバの場合、この指令はクライアントメッセージ (「File Not Found」など) 用の言語を指定します。値は、en (英語)、fr (フランス語)、de (ドイツ語)、または ja (日本語) です。


デフォルト
デフォルトは en です。


DefaultCharSet

国際バージョンのサーバの場合、この指令はサーバ用のデフォルトの文字セットを指定します。デフォルトの文字セットは、クライアントの応答と管理の両方に使われます。


デフォルト
デフォルトは iso-8859-1 です。


DefaultLanguage

国際バージョンのサーバの場合、この指令はサーバ用のデフォルトの言語を指定します。デフォルトの言語は、クライアントの応答と管理の両方に使われます。値は、en (英語)、fr (フランス語)、de (ドイツ語)、または ja (日本語) です。


デフォルト
デフォルトは en です。



DNS 検索



この節では、DNS 検索に影響する magnus.conf の指令をリストします。次の指令があります。


AsyncDNS

非同期 DNS を許可するかどうかを指定します。この指令を有効にするには、DNS 指令で on が設定されている必要があります。値は、on または off のいずれかです。DNS を有効に設定すると、非同期 DNS が可能となりサーバのパフォーマンスが向上します。


デフォルト
デフォルトは off です。


DNS

DNS 指令は、サーバにアクセスするクライアント上でサーバが DNS 検索を実行するかどうかを指定します。クライアントがサーバに接続するとき、サーバはクライアントの IP アドレスは知っていますがそのホスト名は知りません (たとえば、サーバはクライアントをホスト名 www.a.com ではなく 198.95.251.30 として認識します)。サーバは、アクセス制御、CGI、エラーレポート、アクセスログの作成などの操作のために、クライアントの IP アドレスをホスト名に解釈処理します。

サーバが 1 日に大量の要求に応答している場合は、ホスト名の解釈処理を中止したい (または中止する必要がある) ことがあります。そうすることにより、DNS または NIS サーバの負荷を削減できます。


構文
DNS [on|off]


デフォルト
DNS ホスト名解釈処理のデフォルトは on です。



DNS on



スレッド、プロセス、および接続



iPlanet Web Server 6.0 では、待機ソケット上の受け入れ側スレッドが接続を受け付けて、それらの接続を接続キューに入れます。次に、セッションスレッドがキューから接続を取り出して、要求にサービスを提供します。セッションスレッドは、要求の終わりで必要であれば、より多くのセッションスレッドを送信します。新しいスレッドの追加におけるポリシーは、接続キューの状態に基づいています。

  • 新しい接続が返されるたびに、キューで待機している接続 (接続の未処理分) の数が、すでに作成されているセッションスレッドの数と比較されます。待機している接続の数がそのスレッドの数より多い場合は、次に要求が完了した時点でスレッドをさらに追加するようにスケジュールされます。

  • 時間の経過につれて増加しているように見える場合、およびその増加が ThreadIncrement 値より大きく、セッションスレッドから未処理分を引いた数が ThreadIncrement 値より小さい場合は、さらに ThreadIncrement 数のスレッドを追加するようにスケジュールされるよう、前回の未処理分が追跡されます。

  • 新しいセッションスレッドを追加するプロセスは、RqThrottle 値によって厳密に制限されます。

  • 未処理分が急に増えたときに (たとえばベンチマーク読み込みの開始時など) 作成されるスレッドが多くなりすぎないようにするため、スレッドがさらに必要かどうかの決定がなされます。これは、すでに存在するセッションスレッドの数に基づいて、16 回または 32 回の接続ごとに一回だけ行なわれます。

ここでは、スレッド、プロセス、および接続の数とタイムアウトに影響する magnus.conf の指令をリストします。それらの指令は次のとおりです。

ネイティブカーネルスレッドのプールを制御する指令については、「ネイティブスレッドプール」も参照してください。


ConnQueueSize

Web サーバが保持できる未処理の (まだサービスを受けていない) 接続の数を指定します。この値は、プロセスごとのオープンファイル記述子の最大数に対するオペレーティングシステムの制限値より常に大きくすることをお勧めします。


デフォルト
デフォルト値は 5000 です。


HeaderBufferSize

クライアントから要求データを読み取るために各要求処理スレッドが使用するバッファのサイズ (バイト単位)。要求処理スレッドの最大数は、RqThrottle の設定によって制御されます。


デフォルト
デフォルト値は 8192 (8 K バイト) です。


IOTimeout

クライアントからデータが届くのをサーバが待つ時間 (秒数) を指定します。タイムアウトが期限切れになる前にデータが届かない場合は、接続は閉じられます。この値をデフォルトの 30 秒より小さく設定すれば、早めにスレッドを解放することができます。ただし、低速で接続しているユーザが切り離されることがあります。


構文
IOTimeout seconds


デフォルト
ハードウェア暗号化デバイスを使用しないサーバの場合は 30 秒、使用するサーバの場合は 300 秒。


KeepAliveThreads

この指令は、キープアライブサブシステムのスレッドの数を決定します。この数は、システム上のプロセッサ数の小さい倍数にすることをお勧めします。(たとえば、CPU が 2 つのシステムは、キープアライブスレッドの数を 2 または 4 にします)。この設定の値を選ぶときは、許可されているキープアライブ接続の最大数 (MaxKeepAliveConnections) も考慮に入れる必要があります。


デフォルト
1


KeepAliveTimeout

この指令は、サーバが、クライアントとサーバ間で HTTP キープアライブ接続または持続接続を開いている最大時間を決定します。前のバージョンのサーバのキープアライブ機能では、サーバがクライアント要求を処理している間、クライアントとサーバの接続を開いたままにしておくことができます。デフォルトの接続は、サーバが接続を閉じるか、接続が KeepAliveTimeout で許可された時間を超えるまで接続が開いたままである、持続接続です。

タイムアウトのカウントダウンは、接続がキープアライブサブシステムに渡されるときに開始します。タイムアウトが期限切れになったときに接続に何も動作がない場合、接続は閉じられます。


デフォルト
デフォルト値は 30 秒です。最大値は 300 秒 (5 分) です。


KernelThreads

iPlanet Web Server では、オペレーティングシステムがカーネルレベルのスレッドをサポートしているときは常に、カーネルレベルとユーザレベルの両方のスレッドをサポートできます。ローカルスレッドはプロセス内の NSPR によってスケジュールされ、カーネルスレッドはホストのオペレーティングシステムによってスケジュールされます。通常、標準のデバッガとコンパイラは、カーネルレベルのスレッドの使用が意図されています。KernelThreads1 (オン) に設定すると、サーバがユーザレベルのスレッドではなく必ずカーネルレベルのスレッドのみを使用するようにできます。KernelThreads0 (オフ) に設定すると、サーバが必ずユーザレベルのスレッドのみを使用するようにし、これによりパフォーマンスが向上することがあります。


デフォルト
デフォルト値は 0 (オフ) です。


ListenQ

待機ソケット上の、未処理の接続の最大数を指定します。未処理のキューがいっぱいになっている待機ソケットでタイムアウトになった接続は、失敗します。


デフォルト
デフォルト値はプラットフォームに依存します。4096 (AIX)、200 (NT)、128 (その他すべて) です。


MaxKeepAliveConnections

サーバが同時に開いておくことができるキープアライブおよび持続接続の最大数を指定します。値の範囲は 0 〜 32768 です。


デフォルト


MaxProcs (UNIX のみ)

サーバが同時に実行しておくことができるプロセスの最大数を指定します。magnus.conf ファイルに MaxProcs を含めない場合、サーバはデフォルトの単一プロセスの実行を採用します。

マルチプロセスモードで実行している場合は、プロセッサごとに 1 つのプロセスをお勧めします。iPlanet Web Server 6.0 では、この設定で指定するアクティブプロセス数のほかに、最初から存在するプロセスが常にあります。

上記に関して、およびその他のサーバ構成およびパフォーマンスの調整に関する問題の補足説明が、『Performance Tuning, Sizing, and Scaling Guide for iPlanet Web Server』に記載されています。


デフォルト
1


PostThreadsEarly

この指令が 1 (オン) に設定されている場合、サーバは、接続を受け入れてから応答を要求に送るまでの間に、最小数のスレッドが待機ソケットで利用可能かどうかを確認します。長時間のデータベース接続など、処理に時間のかかる要求をサーバで処理するときは、この指令を使用します。


デフォルト
0 (オフ)


RcvBufSize

ソケットが使用する受信バッファのサイズ (バイト単位) を指定します。指定できる値は、オペレーティングシステムによって決定されます。


デフォルト
デフォルト値はオペレーティングシステムによって決定されます。通常のデフォルトは、4096 (4K バイト)、8192 (8K バイト) です。


RqThrottle

サーバが同時に処理できる要求処理スレッドの最大数を指定します。それぞれの要求は、自身のスレッドで実行されます。

上記に関して、およびその他のサーバ構成およびパフォーマンスの調整に関する問題の補足説明が、『Performance Tuning, Sizing, and Scaling Guide for iPlanet Web Server』に記載されています。


デフォルト


RqThrottleMin

サーバの起動時に作成される要求処理スレッドの数を指定します。サーバでの負荷が増加するに従って、作成される要求処理スレッドも増えます (RqThrottle スレッドの最大数まで)。


デフォルト


SndBufSize

ソケットが使用する送信バッファのサイズ (バイト単位) を指定します。


デフォルト
デフォルト値はオペレーティングシステムによって決定されます。通常のデフォルトは、4096 (4K バイト)、8192 (8K バイト) です。


StackSize

各要求処理スレッドの最大スタックサイズを決定します。


デフォルト
最適なマシン固有のスタックサイズ。


StrictHttpHeaders

厳密な HTTP ヘッダー検査を制御します。厳密な HTTP ヘッダー検査がオンの場合、サーバは不適切に重複されたヘッダーが含まれている接続を拒否します。


構文
StrictHttpHeaders [on|off]


デフォルト
on


TerminateTimeout

サーバが、シャットダウンする前に、すべての既存の接続が終了するのを待つ時間を指定します。


デフォルト
30 秒


ThreadIncrement

サーバでの負荷の増加 (たとえば、未処理の接続 (要求処理キューにある) の数がアイドル状態の要求処理スレッドの数を超えたときなど) に対処するために作成される、追加の、または新しい要求処理スレッドの数。

サーバは起動時に、要求処理スレッドの RqThrottleMin 番号を作成します。負荷が増えるに従って、サーバは RqThrottle 個の要求処理スレッドが作成されるまで、ThreadIncrement 個の追加要求処理スレッドを作成します。


デフォルト
デフォルト値は 10 です。


UseNativePoll (UNIX のみ)

1 (オン) に設定されると、プラットフォーム固有のポーリングインタフェースを使用します。0 (オフ) に設定されると、KeepAlive サブシステムの NSPR ポーリングインタフェースを使用します。


デフォルト
1 (オン)



ネイティブスレッドプール



この節では、ネイティブカーネルのスレッドプールのサイズを制御する指令をリストします。システム変数 NSCP_POOL_STACKSIZENSCP_POOL_THREADMAX、および NSCP_POOL_WORKQUEUEMAX の設定により、ネイティブスレッドプールを制御することもできます。これらの値が環境変数として設定されていて、magnus.conf でも設定されている場合は、環境変数の値が優先されます。

UNIX 上のネイティブプールは、すべてのスレッドが OS レベルのスレッドであるため、通常は専用使用されません。UNIX 上のネイティブプールを使用すると、追加のコンテキストスイッチが必要になるため、パフォーマンスのオーバーヘッドがわずかに発生することがありますが、jvm.stickyAttach 効果のローカライズや、リソースの制御と管理、プラグインのシングルスレッド動作のエミュレートなどのその他の目的に使用することができます。

Windows NT では、常にデフォルトのネイティブプールが使われ、iPlanet Web Server は最初の要求処理のためにファイバ (ユーザがスケジュールしたスレッド) を使用します。Windows NT でカスタムの追加プールを使用しても、余分なオーバーヘッドは発生しません。

次の指令があります。


NativePoolStackSize

ネイティブ (カーネル) スレッドプール内の各スレッドのスタックサイズを決定します。


デフォルト
0


NativePoolMaxThreads

ネイティブ (カーネル) スレッドプール内のスレッドの最大数を決定します。


デフォルト


NativePoolMinThreads

ネイティブ (カーネル) スレッドプール内のスレッドの最小数を決定します。


デフォルト
1


NativePoolQueueSize

スレッドプール用にキューで待機できるスレッドの数を決定します。プール内のすべてのスレッドが使用中である場合、ネイティブプール内のスレッドを使用する必要のある次の要求処理スレッドは、そのキューで待機しなければなりません。キューがいっぱいの場合、キューに入ろうとする次の要求処理スレッドは拒否され、使用中(ビジー)であるという応答がクライアントに返されます。その後スレッドは、キューで待機して拘束されるのではなく、別の着信要求を処理するために解放されます。


デフォルト
0



CGI



この節では、CGI プログラムに対する要求に影響を与える magnus.conf の指令のリストを示します。次の指令があります。


CGIExpirationTimeout

この指令は、CGI プロセスが、強制終了される前に、実行することができる最大時間 (秒単位) を指定します。

CGIExpirationTimeout に設定する値が低くなりすぎないようにする必要があります。300 秒 (5 分) はほとんどの対話型 CGI に適した値ですが、それより長い時間かかる(誤った動作なく)ことが予想される CGI の場合は、CGI プログラムを正常に実行するのに予想される最大の時間を設定する必要があります。値 0 は、CGI の期限切れを無効にします。つまり、CGI プロセスの時間制限をなくします。

Windows NT プラットフォームでは、init-cgi タイムアウトは機能しないため、CGIExpirationTimeout を使用する必要があります。


デフォルト
0


CGIStubIdleTimeout

この指令により、サーバは、この指令で設定された秒数の間アイドル状態が続いたすべての CGIStub プロセスを強制終了します。いったんプロセスの数が MinCGIStubs の数になると、サーバはそれ以上のプロセスを強制終了しません。


デフォルト
30


CGIWaitPid (UNIX のみ)

UNIX プラットフォームの場合、CGIWaitPidon に設定されているときは、SIGCHLD シグナルに対する動作は、そのシグナルに対するシステムのデフォルト動作です。NSAPI プラグインが子プロセスをフォークまたは実行 (exec) する時は、子プロセスの終了時に、「終了した」プロセスから退去することを避けるために CGIWaitPid が有効になっている場合、その子プロセスの pidwaitpid を呼び出す必要があります。CGIWaitPid が有効になっているとき、SHTML エンジンはその exec cmd 子プロセス上で明示的に待機します。この指令は CGI には影響をおよぼさないことに注意してください。


デフォルト
on


MaxCGIStubs

サーバが生成できる CGIStub プロセスの最大数を制御します。これは、実行中の同時 CGIStub プロセスの最大数であり、未処理の要求の最大数ではありません。デフォルトの値は、ほとんどのシステムに対して適切であると思われます。設定値が高すぎると、実際にはスループットが減ることがあります。


デフォルト
10


MinCGIStubs

デフォルトで開始されるプロセスの数を制御します。最初の CGIStub プロセスは、CGI プログラムがアクセスされるまで開始されません。magnus.conf ファイル内に init-cgi 指令がある場合、CGIStub プロセスの最小数は起動時に生成されることに注意してください。この値は、MaxCGIStubs 値より小さくなければなりません。


デフォルト
2


WincgiTimeout

この値より長くかかる WinCGI プロセスは、このタイムアウト (秒) に達すると終了させられます。


デフォルト
60



エラーログ作成と統計収集



この節では、エラーログ作成とサーバ統計の収集に影響する magnus.conf の指令をリストします。それらの指令は次のとおりです。


ErrorLog

ErrorLog 指令は、サーバがエラーのログを作成するディレクトリを指定します。エラーがファイルにレポートされる場合、ログを保持するファイルとディレクトリは、サーバを稼動するユーザアカウントが何であっても、常にそのユーザアカウントから書き込み可能でなければなりません。

UNIX: syslog 機能も使用できます。


構文
ErrorLog logfile

logfile は、絶対パスまたはファイル名のいずれかにすることができます。

UNIX システムでは、キーワード SYSLOG にすることができます (すべて大文字にする必要があります)。


デフォルト
デフォルトのエラーログはありません。



Windows NT:

ErrorLog C:\Netscape\ns-home\Logs\Errors

UNIX:

ErrorLog /var/ns-server/logs/errors

ErrorLog SYSLOG


ErrorLogDateFormat

ErrorLogDateFormat 指令は、サーバログが使用する日付の書式を指定します。


構文
ErrorLogDateFormat format

format は、C ライブラリ関数 strftime に対して有効な、任意の書式です。付録 D「時刻の書式」を参照してください。


デフォルト
%d/%b/%Y:%H:%M:%S


LogFlushInterval

この指令は、ログフラッシュスレッドのログフラッシュの間隔 (秒) を決定します。


デフォルト
30


LogVerbose

この指令は、詳細ログを作成するかどうかを決定します。この値が on の場合、サーバは、デフォルトでは記録されないものを含め、すべてのサーバメッセージのログを作成します。


デフォルト
off


LogVsId

この指令は、仮想サーバ ID をエラーログに表示するかどうかを決定します。複数の仮想サーバが同じログファイルを共有するときは、LogVsId を有効にする必要があります。


デフォルト
off


PidLog

PidLog は、ベースサーバプロセスのプロセス ID (pid) を記録するファイルを指定します。サーバサポートプログラムによっては、このログがサーバルートの logs/pid にあると仮定するものもあります。

サーバをシャットダウンするには、-TERM シグナルを使用して、pid ログファイルにリストされるベースサーバプロセスを強制終了します。構成ファイルを再度読み込んでログファイルを再度開くようサーバに指示するには、kill-HUP シグナルとともに使用します。

サーバが使用しているユーザアカウントで PidLog ファイルが書き込み可能でない場合、サーバはそのプロセス ID のログをどこにも作成しません。サーバは、プロセス ID のログを作成できない場合、開始しません。


構文
PidLog file

file は、プロセス ID が格納される絶対パス名およびファイル名です。


デフォルト
デフォルトはありません。



PidLog /var/ns-server/logs/pid

PidLog /tmp/ns-server.pid



ACL



この節では、アクセス制御リスト (ACL) に関連する magnus.conf の指令をリストします。それらの指令は次のとおりです。


ACLCacheLifetime

ACLCacheLifetime は、キャッシュエントリが期限切れになるまでの秒数を決定します。キャッシュ内のエントリが参照されるたびに、その経過時間が ACLCacheLifetime に照らして計算され、確認されます。経過時間が ACLCacheLifetime 以上の場合、このエントリは使用されません。この値を 0 に設定すると、キャッシュはオフになります。

この値に大きい数を指定する場合は、LDAP エントリに変更を加えるときに iPlanet Web Server を再起動する必要があることがあります。たとえば、この値を 120 秒に設定すると、iPlanet Web Server は 2 分間 LDAP サーバとの同期を失う可能性があります。LDAP が頻繁に変わる可能性がなさそうな場合は、大きい数を使用します。


デフォルト
120


ACLUserCacheSize

ACLUserCacheSize は、ユーザキャッシュ内のユーザ数を決定します。


デフォルト
200


ACLGroupCacheSize

ACLGroupCacheSize は、単一の UID/キャッシュエントリ用にキャッシュできるグループ ID の数を決定します。


デフォルト
4



セキュリティ



この節では、iPlanet Web Server のサーバアクセスとセキュリティの問題に影響する magnus.conf の指令をリストします。それらの指令は次のとおりです。


Security

Security 指令は、証明書をサーバインスタンスで利用できるようにすることによって、SSL をグローバルに有効または無効にします。SSL を使用する仮想サーバの場合、これは on でなければなりません。無効になっている場合、ユーザに対して管理者パスワードを求めるプロンプトが表示されます (証明書などにアクセスするため)。



  セキュリティ保護された待機ソケットをサーバマネージャで作成するとき、セキュリティは自動的に magnus.conf でグローバルにオンになります。セキュリティ保護された待機ソケットを server.xml で手動で作成するときは、magnus.conf を編集してセキュリティをオンにする必要があります。

 



個々の仮想サーバに対する SSL の有効化についての詳細は、第 8 章「仮想サーバの構成ファイル」を参照してください。


構文
Security [on|off]


デフォルト
off



Security off


SSLCacheEntries

キャッシュできる SSL セッションの数を指定します。上限はありません。


構文
SSLCacheEntries number

number が 0 の場合、デフォルト値 10000 が使われます。


SSLClientAuthDataLimit

クライアント証明書のハンドシェーク段階でバッファされるアプリケーションデータの最大量 (バイト) を指定します。


デフォルト
デフォルト値は、1048576 (1 M バイト) です。


SSLClientAuthTimeout

クライアント証明書のハンドシェーク段階がタイムアウトするまでの秒数を指定します。


デフォルト
60


SSLSessionTimeout

SSLSessionTimeout 指令は、SSL2 セッションのキャッシュ化を制御します。


構文
SSLSessionTimeout seconds

seconds 値は、キャッシュされた SSL2 セッションが無効になるまでの秒数です。SSLSessionTimeout 指令が指定されている場合、この秒数の値は暗黙的に 5 〜 100 秒間に制限されます。


デフォルト
デフォルト値は 100 です。


SSL3SessionTimeout

SSL3SessionTimeout 指令は、SSL3 セッションのキャッシュ化を制御します。


構文
SSL3SessionTimeout seconds

seconds 値は、キャッシュされた SSL3 セッションが無効になるまでの秒数です。デフォルト値は 86400 (24 時間) です。SSL3SessionTimeout 指令が指定されている場合、この秒数の値は暗黙的に 5 〜 86400 秒間に制限されます。



チャンクされたエンコーディング



この節では、チャンクされたエンコーディングを制御する指令をリストします。詳細は、「バッファ化されたストリーム」を参照してください。

これらの指令に対しては、obj.conf 内に同等の Service SAF パラメータがあります。obj.conf パラメータは、これらの指令をオーバーライドします。詳細は、「Service 段階」を参照してください。


UseOutputStreamSize

UseOutputStreamSize 指令は、net_read および netbuf_grab NSAPI 関数用のデフォルトの出力ストリームバッファサイズを決定します。



  UseOutputStreamSize パラメータを obj.conf ファイルでゼロに設定して、出力ストリームバッファリングを無効にすることができます。magnus.conf ファイルの場合は、UseOutputStreamSize をゼロに設定しても効果はありません。

 




構文
UseOutputStreamSize size

size 値は、バイト数です。


デフォルト
デフォルト値は 8192 (8 K バイト) です。


ChunkedRequestBufferSize

ChunkedRequestBufferSize 指令は、「チャンク解除」要求データのデフォルトのバッファサイズを決定します。


構文
ChunkedRequestBufferSize size

size 値は、バイト数です。


デフォルト
デフォルト値は 8192 です。


ChunkedRequestTimeout

ChunkedRequestTimeout 指令は、「チャンク解除」要求データのデフォルトのタイムアウトを決定します。


構文
ChunkedRequestTimeout seconds

seconds 値は、秒数です。


デフォルト
デフォルト値は 60 (1 分) です。



その他



この節では、magnus.conf のその他の指令をリストします。



  ブール値が記載されている指令には、次のような同等の値があります。on/yes/true および off/no/false

 




ChildRestartCallback

この指令は、サーバが再起動またはシャットダウンされるときに、daemon_atrestart 関数を使用して登録された NSAPI 関数のコールバックを強制します。値は、onoffyesnotrue、または false です。


デフォルト
no


HTTPVersion

m.n という書式の、サーバが使用する現在の HTTP バージョン。ここで、m はメジャーバージョンの番号で、n はマイナーバージョンの番号です。


デフォルト
デフォルト値は 1.1 です。


MaxRqHeaders

1 つの要求内のヘッダー行の最大数を指定します。値の範囲は 0 〜 32 です。


デフォルト
32


Umask (UNIX のみ)

この指令は、さまざまなモードでファイルを開くために NSAPI 関数 System_fopenWA() および System_fopenRW() が使用する umask 値を指定します。この指令に有効な値は、UNIX の標準 umask 値です。

これらの関数の詳細は、第 5 章「NSAPI 関数のリファレンス」system_fopenWA および system_fopenRW を参照してください。


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

Last Updated September 21, 2001