2009-06-29 41 views
0

我在Apache上部署了一個mod_wsgi應用程序,並且有一個使用Curl的客戶端程序。Curl,Apache和mod_wsgi連接重用

在用戶端的CURL api上,我嘗試重新使用連接,但是從wireshark查看連接,我發現對於每個HTTP請求/響應都會創建一個新連接。

在每個HTTP請求的結束時,將HTTP響應報頭具有「連接:關閉」

這是一樣的保持活動?我需要在Apache/Mod_wsgi端執行什麼操作來啓用連接重用?

回答

3

您通常不需要對Apache做任何事情,因爲默認情況下通常會保持活動連接的支持。查看Apache配置中的KeepAlive指令以確定它的設置。

最重要的是,爲了保持活動連接的正常工作,WSGI應用程序必須在響應中設置內容長度,或者返回列表只包含一個字符串的響應列表。在後一種情況下,mod_wsgi會自動爲響應添加一個內容長度。響應通常也需要是成功的響應,因爲大多數錯誤響應會導致連接關閉,無論如何。

即使做了所有這些,問題是curl是否能夠使用保持活動連接來獲取多個URL。很明顯,單獨的捲曲調用將無法完成,所以你甚至會問這個問題,表明你正試圖使用​​捲曲的特徵。如果您使用鏈接到libcurl並使用其庫的自定義客戶端,並且所以您的意思是libcurl,則只有其他選項。

請注意,如果通過代理訪問Apache,代理可能不會實現保持活動狀態,因此停止整個機制的工作。

要提供更多信息,需要了解您如何使用捲曲。