在處理移動客戶端時,在HTTP請求傳輸過程中出現多次延遲是非常普遍的。如果您正在使用prefork Apache服務頁面或服務,則即使您的應用服務器邏輯在5ms內完成,子進程也會爲單個移動客戶端服務幾秒鐘。我正在尋找支持以下內容的HTTP服務器,平衡器或代理服務器:任何HTTP代理具有顯式的,可配置的支持請求/響應緩衝和延遲連接?
請求到達代理。代理開始在RAM或磁盤中緩衝請求,包括頭文件和POST/PUT主體。代理服務器不會打開到後端服務器的連接。這可能是最重要的部分。
代理服務器停止緩衝請求時:
- 甲尺寸已達到限制(比如,4KB),或
- 請求已經被完全接收,標頭和主體
只是現在,在內存中有(請求的)(部分)請求,連接打開到後端,請求被中繼。
後端發送迴應。代理服務器再次立即開始緩衝(達到更大的尺寸,比如64KB)
由於代理具有足夠大的緩衝區,後端響應在毫秒級內完全存儲在代理服務器中,後端進程/線程可以自由處理更多請求。後端連接立即關閉。
代理將響應發送回移動客戶端,儘可能快或儘可能慢地響應,而不需要連接到後端綁定資源。
我相當肯定你可以用Squid做4-6,而nginx似乎支持1-3(在這方面看起來很獨特)。我的問題是:是否有任何代理服務器支持這些緩衝和不開放連接 - 直至就緒功能?也許只有一點點的Apache config-fu讓這種緩衝行爲變得微不足道?他們中的任何一個,它不像Squid這樣的恐龍,並且支持精簡的單進程異步基於事件的執行模型?
(Siderant:我會使用nginx的,但它不支持分塊POST機構,使其成爲無用的服務的東西向移動客戶端是便宜50 $手機愛分塊跟貼...嘆了口氣。)
看起來像一個非常酷的HTTP調試工具!不幸的是,我想要的是一個代理服務器,而不是HTTP監控/操作的桌面UI。 – 2008-10-01 11:25:16