全部產品
Search
文件中心

:Server Load Balancer的會話保持功能不生效

更新時間:Oct 25, 2024

問題描述

使用阿里雲Server Load Balancer時,會話保持的功能不生效。

問題原因

可能的問題原因如下:

  • Server Load Balancer的監聽配置中未開啟會話保持功能。

  • 會話保持時間設定過小。

  • 使用HTTP/HTTPS監聽,當後端伺服器返回4XX的HTTP狀態代碼時,報文中無法插入會話保持所需的Cookie,導致會話保持失效。

  • 使用HTTP/HTTPS監聽,當後端伺服器返回302重新導向的HTTP狀態代碼時,會話保持中的SERVERID字串將被改變,導致會話保持失效。

解決方案

如何檢查負載平衡會話保持不生效問題:

  1. 登入阿里雲管理主控台,進入Server Load Balancer的執行個體管理頁面,確認監聽選項卡中會話保持狀態為已開啟。如果狀態為關閉,請參見添加TCP監聽,開啟會話保持功能。

    image..png

  2. 檢查是否調整過會話保持的逾時時間。如果逾時時間設定過小,可能會導致會話保持失敗。可以嘗試使用預設逾時時間或者適當增加逾時時間,同時觀察會話保持狀態。關於如何觀察會話保持狀態,請參見如何使用curl命令測試CLB會話保持的有效性

  3. 在瀏覽器端捕抓請求與響應的回複資訊,或使用抓包軟體分析是否存在如下報文。如果存在如下報文,則建議改用TCP監聽。因為TCP監聽是通過源用戶端的IP地址進行會話保持的。您還可以在後端Web程式中插入Cookie,並對其進行判斷,以確保會話保持的有效性。

    • 302重新導向的報文:負載平衡植入Cookie時,如果後端ECS執行個體返回302重新導向的報文,將改變會話保持中的SERVERID字串,導致會話保持失效。

    • 4XX響應碼的報文:負載平衡無法在4XX響應碼的報文中插入會話保持所需的Cookie。

相關文檔

適用於

  • Server Load Balancer