C mod_cgidを使用する場合のCGIDScriptTimeoutの設定
Oracle HTTP Serverには、CGIスクリプトを実行するためにApacheによって提供されるmod_cgi
およびmod_cgid
モジュールが含まれます。
UNIXでマルチスレッドMPMを使用する場合は、パフォーマンスを向上させ、複数のスレッドのフォークによるオペレーティング・システムに対する不要な負荷を回避するために、mod_cgi
モジュールのかわりにmod_cgid
モジュールをロードする必要があります。mod_cgid
モジュールには、mod_cgi
モジュールと比較してマルチスレッド環境でのシステム・パフォーマンスを向上させるための最適化があります。『Apache Module mod_cgid』を参照してください。
UNIXでマルチスレッドMPMを使用する場合、デフォルトでmod_cgid
モジュールがロードされます。構成を確認するには:
- Fusion Middleware Controlの「サーバーの詳細構成」ページまたはテキスト・エディタを使用して、
httpd.conf
ファイルを開きます。 LoadModule
セクションで、mod_cgid
がまだ構成されていない場合は、次の行を追加してmod_cgid
モジュールをロードします:<IfDefine OHS_MPM_EVENT> LoadModule cgid_module "${PRODUCT_HOME}/modules/mod_cgid.so" </IfDefine> <IfDefine OHS_MPM_WORKER> LoadModule cgid_module "${PRODUCT_HOME}/modules/mod_cgid.so" </IfDefine>
mod_cgid
モジュールは、CGIプログラムからの追加出力を待機する時間の長さを制限するために使用できるCGIDScriptTimeout
ディレクティブをサポートしています。
- CGIDScriptTimeoutディレクティブ
このディレクティブは、CGIプログラムからの出力を待機する時間の長さを制限します。
CGIDScriptTimeoutディレクティブ
このディレクティブは、CGIプログラムからの出力を待機する時間の長さを制限します。
この時間を超えると、リクエストとCGIは終了します。これによってサーバーとの通信を停止してCGIスクリプトがリソースを使い果たすことを制限でき、意図しないエラーと悪意のあるアクション(DoS攻撃など)の両方から保護できます。
デフォルトでは、mod_cgid
はTimeoutディレクティブを使用してCGI出力を待機する時間の長さを制限します。このタイムアウトは、CGIDScriptTimeout
ディレクティブでオーバーライドできます。CGIDScriptTimeout
のデフォルト値(設定されていない場合、または0
に設定されている場合)は、Timeoutディレクティブです。CGIDScriptTimeout
を構成するには:
- Fusion Middleware Controlの「サーバーの詳細構成」ページまたはテキスト・エディタを使用して、
httpd.conf
ファイルを開きます。 CGIDScriptTimeout
ディレクティブを構成するために次の行を追加します:<IfModule cgid_module> # # CGIDScriptTimeout: Limits the waiting time for output from the CGI program # Replace 20 with the actual timeout value to be set in seconds # CGIDScriptTimeout 20 </IfModule>
ノート:
最適な結果を得るには、アプリケーションでテストを実行する必要があります。タイムアウト値は、CGIプログラムがOHSに出力を返送するために必要な時間に基づいて設定する必要があります。前述の構成では、CGIプログラムからの出力を20秒間待機するようOHSに指示します。