fbpx

Client Keep-Alive on Citrix ADC

原創 仲雷 

Citrix ADC 是一款應付交付控制器,部署於用戶端和伺服器之間,充當用戶端和伺服器溝通的橋樑。
通常情況下,當一個http 交互結束之後,服務端通過回復包含 close 資訊的HTTP Response 給到用戶端,通知關閉Client-side端的 TCP 連接。當用戶端需要傳遞新的 HTTP 請求時,則需要重新建立 Client-side 的連接。

但在一些特殊場景中,我們希望能維持用戶端的連接,來達到節約新建和拆除連接的時間及資源、提升報文交互效率的目的。Citrix ADC 的 Client Keep-Alive 功能能夠解決此問題,即使在伺服器向用戶端返回了 close 請求的情況下,ADC 也能保持與用戶端的TCP連接,這樣就能允許多個用戶端的 Request使用同一個用戶端連接來傳遞資料。

CKA 測試拓

拓撲及基礎配置說明
–      Citrix ADC 採用旁掛模式部署,使用 VIP 和 SNIP 分別和用戶端和伺服器交互資料
–      Citrix ADC 提供Load balancing 和 SSL Offloading 功能,VIP配置 SSL 類型,service 配置為 http 類型

CKA配置方法
1)   啟用 NS 上 CKA 功能
選擇目標 Load Balancing Service,編輯其 Settings 選項,啟用 Client Keep-Alive 功能,如下圖

Note
–       客戶keep-alive 功能僅適用於 HTTP 和 SSL 類型的服務
–       CKA 功能也可全域開啟。在Settings-Configure Modes 裡面啟用 Client-side Keep-Alive 功能即可

2)   配置 HTTP 參數,確認連接複用功能打開
確認全域默認調用的 HTTP Profiles 中連接複用功能已經啟用。如果自訂 HTTP Profiles,同樣要求開啟連接複用的功能。

結果驗證
可以看到從ADC VIP:146.246.12.1 發往 Client IP:145.0.60.94 的HTTP Response 報文中的欄位Connection:close被亂序修改更改為Cneonction:close,同時ADC也不再向用戶端發送FIN包終結 TCP 連接,這樣用戶端和 ADC 之間Client-side的連接依然保持,後續的該用戶端REQ會繼續使用已存在的連接發送 HTTP request。
CKA 生效截圖如下

發表迴響

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: