Sun ロゴ      前へ      目次      索引      次へ     

Sun ONE Application Server 7, Enterprise Edition 管理者用設定ファイルリファレンス

第 3 章
init.conf の構文と使い方

Sun ONE Application Server は起動時に、instance_dir/config ディレクトリの init.conf というファイルを検索して、サーバーインスタンスの動作と設定に関係するグローバル変数セットを設定します。Sun ONE Application Server は init.conf で定義した指令をすべて実行します。

Init 関数を除く init.conf の指令では変数と値を 1 つずつ指定します。たとえば次のように指定します。

TempDir /tmp

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


ブール値の指令には次のような等価の値があります。on/yes/trueoff/no/false



init.conf ファイルを編集した場合、サーバーを再起動して変更内容を反映させる必要があります。



init.conf インタフェースは、不確定です。不確定なインタフェースは試験的または一時的なインタフェースであるため、次のリリースで互換性がなくなったり、削除されたり、または安定したインタフェースに置き換えられたりする場合があります。


この章では、Sun ONE Application Server 7 の init.conf で指定できるグローバル設定について示します。

この章には次の節があります。

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


ほとんどのファイルキャッシュ機能は nsfc.conf という設定ファイルで制御されます。nsfc.conf については、「nsfc.conf」と『Sun ONE Application Server Performance Tuning Guide』を参照してください。



Init 関数

Init 関数は、サーバーモジュールとプラグインを読み込んで初期化し、ログファイルを初期化します。これらの関数の詳細については、『Sun ONE Application Server Developer's Guide to NSAPI』を参照してください。


サーバー情報

この節では、サーバーに関する情報を指定する init.conf の指令について示します。次の指令があります。

NetSiteRoot

サーバーの bin ディレクトリと lib ディレクトリがある最上位ディレクトリへの絶対パス名を指定します。デフォルト値はないので値を指定する必要があります。

構文

NetSiteRoot path

TempDir

サーバーが一時ファイルとして使用するローカルボリュームのディレクトリを指定します。UNIX では、サーバーを実行するユーザーがそのディレクトリを所有し、書き込める必要があります。「User (UNIX のみ)」指令および「TempDirSecurity」指令も参照してください。

構文

TempDir path

デフォルト値

/tmp (UNIX)

TempDirSecurity

TempDir ディレクトリのセキュリティをサーバーがチェックするかどうかを指定します。UNIX では TempDirSecurity をオフ (TempDirSecurity off) にすると、サーバーは /tmp を一時ディレクトリとして使用します。


警告

UNIX では TempDirSecurity off を指定したり、/tmp を一時ディレクトリとして使用しないでください。/tmp を一時ディレクトリとして使用すると、セキュリティ上のリスクが大きくなります。


構文

TempDirSecurity [on|off]

デフォルト値

on

User (UNIX のみ)

User 指令ではサーバーの UNIX ユーザーアカウントを指定します。サーバーをスーパーユーザーまたはルートユーザーとして起動すると、指定したポートがバインドされ、ユーザー ID が User 指令で指定したユーザーアカウントに変更されます。サーバーを root で起動しない場合、この指令は無視されます。指定するユーザーアカウントには、サーバールートおよびサブディレクトリへの読み取りアクセス権を与える必要があります。ユーザーアカウントには、ログディレクトリへの書き込みアクセス権と CGI プログラムの実行権限を与える必要があります。ユーザーアカウントには設定ファイルに対する書き込み権を与えないようにします。これは、たとえ第三者がサーバーに侵入しても、設定ファイルを変更してマシンへアクセスすることを防ぐためです。nobody ユーザーを使用すると、十分なセキュリティが得られなくなる可能性があります。

構文

User name

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

デフォルト値

User 指令がなければ、サーバーは起動時のユーザーアカウントで実行します。

User http

User server

User nobody


DNS 検索

この節では、DNS 検索に関係がある init.conf の指令を示します。次の指令があります。

AsyncDNS

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

デフォルト値

デフォルトは off です。

DNS

DNS 指令では、サーバーにアクセスするクライアント上でサーバーが DNS 検索を実行するかどうかを指定します。クライアントがサーバーに接続すると、サーバーはクライアントの IP アドレスを認識しますが、クライアントのホスト名を認識しません (たとえばサーバーはクライアントを 198.95.251.30 として認識できてもホスト名の www.a.com を認識できません)。サーバーはクライアントの IP アドレスからホスト名を解決し、アクセスコントロール、CGI、エラーレポート、アクセスログなどを実行します。

サーバーが 1 日に応答する要求が多ければ、ホスト名の解決を停止して DNS サーバーや NIS サーバーの負荷を減らすこともできます。

構文

DNS [on|off]

デフォルト値

DNS ホスト名の解決は、デフォルトで off になっています。

DNS on


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

Sun ONE Application Server 7 では、待機ソケットの受け入れスレッドは接続すると接続キューで待機します。次にセッションスレッドがキューから接続を受け取って要求を処理します。セッションスレッドは、必要に応じてさらに多くのセッションスレッドを要求の最後に登録します。新しいスレッドは、接続キューが次のような状態の場合に追加されます。

この節では、スレッド、プロセスおよび接続数とそれぞれのタイムアウトに関係がある init.conf の指令を示します。次の指令があります。

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

ConnQueueSize

アプリケーションサーバーが持てる未処理の接続数 (サービスが実行されていない接続数) を指定します。この値は、オペレーティングシステムで規定されている 1 プロセス当たりのオープンファイル記述子の最大値を超えるように設定する必要があります。

デフォルト値

デフォルト値は 5000 です。

HeaderBufferSize

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

デフォルト値

デフォルト値は 8192 (8 KB) です。

IOTimeout

クライアントから到着するデータをサーバーが待機する秒数を指定します。タイムアウトとなる前にデータが到着しなかった場合、接続は終了します。デフォルトの 30 秒より短く設定すると、スレッドを早く解放できます。ただし、接続速度が遅いユーザーの接続も切断してしまうことになります。

構文

IOTimeout seconds

デフォルト値

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

KeepAliveThreads

この指令では、キープアライブサブシステムのスレッド数を指定します。推奨値は、システム上のプロセッサ数の数倍の値です。たとえば、CPU が 2 つあるシステムでは、キープアライブのスレッド数は 2 または 4 にします。この値は、キープアライブ接続の最大許容数 (MaxKeepAliveConnections) も考慮して設定する必要があります。

デフォルト値

1

KeepAliveTimeout

この指令では、サーバーが HTTP キープアライブ接続を開いている最大時間、またはクライアントとサーバー間の接続が持続している最大時間を指定します。以前のバージョンでは、サーバーがクライアント要求を処理している間はキープアライブ機能によってクライアントとサーバー接続を開いたままにしておくことができました。デフォルトの接続は、持続接続 (サーバーが接続を閉じるまでは開いたまま) であるか、または KeepAliveTimeout で指定した時間よりも長く接続が開いたままになっています。

接続がキープアライブサブシステムに移ると、タイムアウトへの秒読みが開始されます。タイムアウトまでに接続でアクティビティがない場合は、接続が閉じられます。

デフォルト値

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

ListenQ

待機ソケットで保留される接続の最大数を指定します。バックログキューがいっぱいになっている待機ソケットがタイムアウトになると接続は失敗します。

デフォルト値

デフォルト値は 128

MaxKeepAliveConnections

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

デフォルト値

256

PostThreadsEarly

この指令が 1 (オン) に設定されていると、接続を受け入れてから要求に対する応答を送信するまでの間、待機ソケットの最小スレッド数が有効かどうかをサーバーがチェックします。データベース接続のように処理に時間のかかる要求をサーバーが扱う場合に、この指令を使用します。

デフォルト値

0 (オフ)

RcvBufSize

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

デフォルト値

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

RqThrottle

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

サーバーの設定やパフォーマンスのチューニングについては、『Sun ONE Application Server Performance Tuning Guide』で詳しく説明されています。

デフォルト値

128

RqThrottleMin

サーバー起動時に作成される要求処理スレッドの数を指定します。サーバーの負荷が増すにつれて、作成される要求処理スレッドが多くなります。RqThrottle スレッドの最大数まで作成できます。

デフォルト値

48

SndBufSize

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

デフォルト値

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

StackSize

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

デフォルト値

各マシンに適したマシン固有のスタックサイズです。

StrictHttpHeaders

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

構文

StrictHttpHeaders [on|off]

デフォルト値

off

TerminateTimeout

サーバーがシャットダウンするまでに、既存のすべての接続が切断するのを待機する時間を指定します。

デフォルト値

30 秒

ThreadIncrement

サーバー負荷の増加に対応するための追加または新規要求処理スレッド数です。要求処理キューに入っている保留接続数がアイドル状態の要求処理数より大きい場合などに追加されます。

サーバーの起動時に RqThrottleMin の数だけ要求処理スレッドが作成されます。負荷が増すと RqThrottle 指令による要求処理スレッドが作成されるまで ThreadIncrement 指令による追加要求処理スレッドが作成されます。

デフォルト値

デフォルト値は 10 です。


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

この節では、ネイティブのスレッドプールのサイズを制御する指令を示します。このスレッドプールは、ネイティブの OS レベルのスレッドからのみ構成されています。すべてのスレッドは OS レベルであるため、通常、UNIX ではネイティブのプールは使用されません。UNIX でネイティブプールを使用するとコンテキストの切り替えが必要になり、パフォーマンスオーバーヘッドが少し増えますが、このネイティブプールを stickyAttach 効果のローカライズ、リソースの制御と管理、プラグインの単独スレッド動作のエミュレートなどの目的に使用できます。

stickyAttach は、server.xml ファイルの java-config 要素のプロパティとして次のように指定できます。

<java-config>
   ...
   <property name="stickyAttach" value="1" >
</java-config>

次の指令があります。

NativePoolStackSize

ネイティブスレッドプールのスレッドごとにスタックサイズを指定します。

デフォルト値

0 (オペレーティングシステム固有のデフォルト値)

NativePoolMaxThreads

ネイティブスレッドプールの最大スレッド数を指定します。

デフォルト値

128

NativePoolMinThreads

ネイティブスレッドプールの最小スレッド数を指定します。

デフォルト値

1

NativePoolQueueSize

スレッドプールのキューに待機できるスレッド数を指定します。プールのスレッドがすべてビジー状態の場合、次の要求処理スレッドはネイティブプールのスレッドが空くまでキューで待機します。キューが満杯の場合は次の要求処理スレッドがキューに入ろうとしても拒否され、クライアントにはビジー応答が返されます。その後、スレッドは解放され、キューで待機状態になっていた要求を処理します。

デフォルト値

0 (キューのサイズは無制限)


CGI

この節では、CGI プログラムの要求と関係がある init.conf の指令を示します。次の指令があります。

CGIExpirationTimeout

この指令では、CGI プロセスが終了される前に実行できる最大秒数を指定します。

CGIExpirationTimeout の値はあまり小さくしないようにします。対話型の CGI では 300 秒 (5 分) が適当です。ただし処理に時間がかかる CGI の場合は、CGI プログラムが処理に必要とする最大持続時間を指定します。値を 0 に設定すると CGI の有効期限がなくなり、CGI の処理時間は無制限になります。

デフォルト値

0 (無制限)

CGIStubIdleTimeout

指令で設定した秒数の間、アイドル状態にある CGIStub プロセスをサーバーで終了します。プロセスの数が MinCGIStubs になると、サーバーはそれ以上にプロセスを終了しなくなります。

デフォルト値

30

MaxCGIStubs

サーバーが生成できる CGIStub プロセスの最大数を制御します。この値は、同時に実行できる CGIStub プロセス数の最大値であり、保留中の要求の最大数とは異なります。デフォルト値はほとんどのシステムに適合します。この値を大きくしすぎると実際のスループットが減少します。

デフォルト値

10

MinCGIStubs

デフォルトで起動するプロセスの数を制御します。最初の CGIStub プロセスは CGI プログラムが呼び出されると起動します。init.conf ファイルに init-cgi 指令があれば、最小数の CGIStub プロセスが起動時に生成されます。この値は MaxCGIStubs の値より小さくする必要があります。

デフォルト値

2


エラー記録

この節では、エラーログに関係がある指令を示します。次の指令があります。

ErrorLogDateFormat

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

構文

ErrorLogDateFormat format

formatには付録 A 「日時の形式」の形式がすべて使用できます。

デフォルト値

%d/%b/%Y:%H:%M:%S

LogFlushInterval

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

デフォルト値

30

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) に関連する init.conf の指令を示します。次の指令があります。

ACLCacheLifetime

ACLCacheLifetime は、キャッシュエントリが無効になるまでの時間を秒数で指定します。キャッシュのエントリが参照されるたびに、経過時間が計算され ACLCacheLifetime と照合されます。経過時間が ACLCacheLifetime 以上の場合、このエントリは使用されません。この値を 0 にすると、キャッシュが無効になります。

この値を大きくすると、LDAP エントリを変更した場合に Sun ONE Application Server の再起動が必要になることがあります。たとえば 120 秒に設定すると、Sun ONE Application Server は 2 分間 LDAP サーバーと同期が取れなくなる可能性があります。LDAP が頻繁に変更されない場合は、大きな値を設定できます。

デフォルト値

120

ACLUserCacheSize

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

デフォルト値

200

ACLGroupCacheSize

ACLGroupCacheSize は、1 つの UID/キャッシュエントリに対してキャッシュできるグループ ID の数を指定します。

デフォルト値

4


セキュリティ

この節では、Sun ONE Application Server のサーバーアクセスとセキュリティに関係がある init.conf の指令を示します。次の指令があります。

Security

Security 指令で SSL をグローバルに有効または無効にするには、サーバーインスタンスへの証明書を有効にします。仮想サーバーで SSL を使用する場合は on にしておきます。on に設定した場合、ユーザーは次の入力をするよう要求されます。

仮想サーバーの SSL を有効にする方法については、第 2 章「サーバー設定ファイル」を参照してください。

構文

Security [on|off]

デフォルト値

off

Security off

SSLCacheEntries

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

構文

SSLCacheEntries number

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

SSLClientAuthDataLimit

クライアント証明書のハンドシェークフェーズ時にバッファに入れるアプリケーションデータの最大数をバイト単位で指定します。

デフォルト値

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

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 パラメータはこれらの指令を無視します。詳細については、『Sun ONE Application Server NSAPI Developer's Guide』を参照してください。

UseOutputStreamSize

UseOutputStreamSize 指令では、net_read および netbuf_grab NSAPI 関数の出力ストリームバッファサイズのデフォルト値を指定します。これらの関数の詳細については、『Sun ONE Application Server NSAPI Developer's Guide』を参照してください。


obj.conf ファイルの UseOutputStreamSize パラメータをゼロに設定すると、出力ストリームバッファを無効にできます。init.conf ファイルの UseOutputStreamSize をゼロに設定しても無効になりません。


構文

UseOutputStreamSize size

size の値はバイト数です。

デフォルト値

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

ChunkedRequestBufferSize

ChunkedRequestBufferSize 指令では、チャンクしない要求データのデフォルトバッファサイズを指定します。

構文

ChunkedRequestBufferSize size

size の値はバイト数です。

デフォルト値

デフォルト値は 8192 です。

ChunkedRequestTimeout

ChunkedRequestTimeout 指令では、チャンクしない要求データのデフォルトタイムアウトを指定します。

構文

ChunkedRequestTimeout seconds

seconds の値は秒数です。

デフォルト値

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


その他

この節では、init.conf のその他の指令を示します。

ChildRestartCallback

この指令は、サーバーの再起動時やシャットダウン時に daemon_atrestart NSAPI 関数を使って登録された NSAPI 関数をコールバックさせます。値は onoffyesnotrue、または false です。daemon_atrestart の詳細については、『Sun ONE Application Server NSAPI Developer's Guide』を参照してください。

デフォルト値

No

HTTPVersion

現在サーバーが使用している HTTP バージョンは、m.n の形式で表します。m はバージョンのメジャー番号で、n はマイナー番号です。

デフォルト値

デフォルト値は 1.1

MaxRqHeaders

要求のヘッダー行の最大行数を指定する。0512 の値を取ります。

デフォルト値

64

ReentrantTimeFunctions (Solaris のみ)

ReentrantTimeFunctions 指令では、サーバーがサーバーの再入可能な時間フォーマット実装をオペレーティングシステムの実装の代わりに使用するかどうかを指定します。サーバーの再入可能な実装を使うと、多数の CPU が搭載されているコンピュータのパフォーマンスがあまり向上しないことがあります。

デフォルト値は off で、サーバーはオペレーティングシステムの実装を使用します。

デフォルト値

off

Umask (UNIX のみ)

この指令では、NSAPI 関数 system_fopenWA および system_fopenRW で使用する umask 値を指定して、異なるモードでファイルを開きます。この指令で有効な値は標準の UNIX umask 値です。

これらの関数の詳細については、『Sun ONE Application Server NSAPI Developer's Guide』の system_fopenWA および system_fopenRW を参照してください。



前へ      目次      索引      次へ     


Copyright 2003 Sun Microsystems, Inc. All rights reserved.