web-dev-qa-db-ja.com

Apachehttpdおよびfastcgiのタイムアウトを無効にします

Apache httpd 2.2.11とfastcgiを実行しているdebianlennyサーバーは、リクエストが特定の秒数を超えると、リクエストを強制終了します。このタイムアウトを無効にして、fastcgiを使用して起動されたアプリケーションをデバッグできるようにします。

Apacheとlighttpdの両方のドキュメントを検索しましたが、何も見つかりませんでした(idle-timeoutなどのオプションのみ、ここでは当てはまらないと思います)。

このタイムアウトを制御する方法を知っている人はいますか?ありがとう。

2
Kknd

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回の実行を試行します。

4
quack quixote

Apacheでは、必要なディレクティブはTimeoutです。一部のディストリビューションでは、デフォルトで300程度に設定されています。多くの人が「スローロリス」タイプの攻撃を軽減するためにこれを下げ始めています。

Timeout 10

必要に応じて、最大10分まで設定できるはずです。

Timeout 600
0
Kyle Smith