2010-04-11 74 views
4

我們希望對我們在C++ Apache 2.2模塊(在CentOS 5上)提供的連接有更加細緻的控制。我可以強制從C模塊內關閉Apache 2.2連接嗎?

其中一個連接需要保持活動幾個多個請求,所以我們設置「KeepAlive」爲「開」並設置一個短保持活動期。

但是對於每一個這樣的連接,我們還有幾個來自瀏覽器的連接,我們不需要留下來,而是希望強制它們在一個請求後關閉。

其中一些連接位於不同的端口上(因此我們可以通過端口區分它們,因爲KeepAlive可以設置爲每個虛擬主機)並且一些請求的是不同的URL(所以我們可以從路徑和參數中知道我們不'不想讓他們落後)。

也爲我們想保持活力,我們知道,經過一定的要求,我們也想關閉它。

但到目前爲止,我們發現「取消」保持活動狀態的唯一方法是向客戶端發送禮貌的「Connection:close」標頭。如果客戶表現不好或惡意,那麼他們可以保持開放並浪費我們的資源。

有沒有辦法告訴Apache關閉服務器端的連接?文檔建議不要在套接字上進行簡單的close(2)調用,因爲在完成之前,Apache需要做一些清理工作。但是有沒有一些API或技巧來動態「覆蓋」靜態「KeepAlive On」配置(並說服Apache調用close(2))?

謝謝。

回答

1

嘗試設置c-> aborted,然後apache會在正常關閉的時候關閉套接字。

+0

謝謝。我已經轉到另一份工作,但我會把它傳遞給我留下的人。 – 2012-07-01 05:27:21

相關問題