0

Apacheの上にmod_wsgiアプリケーションをデプロイしていて、Curlを使用するクライアントプログラムがあります。

ユーザー側のCURLAPIで、接続を再利用しようとしていますが、wiresharkからの接続を見ると、HTTP要求/応答ごとに新しい接続が確立されていることがわかります。

すべてのHTTPリクエストの最後に、HTTPレスポンスヘッダーに「Connection:Close」があります

これはKeep-Aliveと同じですか?接続の再利用を有効にするには、Apache / Mod_wsgi側で何をする必要がありますか?

4

1 に答える 1

3

通常、Keep alive接続のサポートはデフォルトでオンになっているため、通常、Apacheに対して何もする必要はありません。Apache構成のKeepAliveディレクティブを見て、何が設定されているかを確認してください。

さらに、接続を維持して機能させるには、WSGIアプリケーションが応答にコンテンツの長さを設定するか、リストに文字列が1つしかない応答のリストを返す必要があります。この後者の場合、mod_wsgiは応答のコンテンツの長さを自動的に追加します。ほとんどのエラー応答では接続が閉じられるため、応答は通常、成功した応答である必要があります。

それでも、問題は、複数のURLをフェッチするcurlの機能が、維持接続を利用するかどうかです。明らかに、curlを個別に呼び出すことはできません。そのため、この質問をしている場合でも、curlの機能を使用しようとしていることを示唆しています。他のオプションは、libcurlにリンクされたカスタムクライアントを使用していて、そのライブラリを使用している場合、つまりlibcurlを意味する場合のみです。

Apacheへのアクセスがプロキシ経由である場合、プロキシはkeep aliveを実装していない可能性があるため、メカニズム全体の動作を停止することに注意してください。

詳細については、curlをどのように使用しているかを知る必要があります。

于 2009-06-29T08:07:34.443 に答える