Apache httpd 2.2.11とfastcgiを実行しているdebianlennyサーバーは、リクエストが特定の秒数を超えると、リクエストを強制終了します。このタイムアウトを無効にして、fastcgiを使用して起動されたアプリケーションをデバッグできるようにします。
Apacheとlighttpdの両方のドキュメントを検索しましたが、何も見つかりませんでした(idle-timeoutなどのオプションのみ、ここでは当てはまらないと思います)。
このタイムアウトを制御する方法を知っている人はいますか?ありがとう。
FastCGIディレクティブ :FastCGIServer、FastCGIConfig、またはFastCgiExternalServerのいずれかが必要なようです。 FastCGIConfig
はすべてのFastCGIアプリケーションに影響します。他の2つはアプリケーションごとです。これらのオプションのいずれかが必要になります(ドキュメントをチェックして、どちらが適切かを確認してください)。
-appConnTimeout n
(0秒)
Unix:FastCGIアプリケーションへの接続が完了するのを待つ秒数、またはブロッキングconnect()を示す0を使用する必要があります。 connect()をブロックすると、OSに依存する内部タイムアウトが発生します。タイムアウトが経過すると、SERVER_ERROR
結果。ゼロ以外の値の場合、これは、非ブロッキングconnect()によって返されるファイル記述子に書き込むためにselect()で使用される時間です。ノンブロッキングconnect()は、多くのプラットフォームで面倒です。 -idle-timeoutも参照してください。同様の結果が得られますが、より移植性が高くなります。
Windows NT:TCPベースのアプリケーションは上記のように機能します。名前付きパイプベースのアプリケーション(-portオプションなしで構成された静的アプリケーションと動的アプリケーション)は、この値を正常に使用して、接続を待機する時間(つまり、「問題」ではありません)。デフォルトでは、これは90秒です(FCGI_NAMED_PIPE_CONNECT_TIMEOUT
mod_fastcgi.h内)。
-idle-timeout n
(30秒)
要求が中止され、イベントがログに記録されるまでに許可されたFastCGIアプリケーションの非アクティブの秒数(エラーLogLevelで)。非アクティブタイマーは、FastCGIアプリケーションとの接続が保留されている場合にのみ適用されます。要求がアプリケーションのキューに入れられているが、アプリケーションがこの期間内に(書き込みとフラッシュによって)応答しない場合、要求は中止されます。アプリケーションとの通信は完了しているが、クライアントとの通信は完了していない(応答がバッファリングされている)場合、タイムアウトは適用されません。
-min-server-life n
(30)
再起動間隔が600秒に増加する前にアプリケーションを実行する必要がある最小秒数。サーバーは、少なくともこの秒数の間、3回の実行を試行します。
Apacheでは、必要なディレクティブはTimeoutです。一部のディストリビューションでは、デフォルトで300程度に設定されています。多くの人が「スローロリス」タイプの攻撃を軽減するためにこれを下げ始めています。
Timeout 10
必要に応じて、最大10分まで設定できるはずです。
Timeout 600