閱讀342 返回首頁    go windows


會話保持常見問題__常見問題_負載均衡-阿裏雲

會話保持的作用是什麼?

將同一用戶端的請求轉發給同一後端的ECS服務器處理。

會話保持如何開啟?持續時間是多久?

在您進行負載均衡服務監聽配置時就可以選擇是否開啟會話保持。您可以針對不同的監聽配置不同的會話保持策略。會話保持的最長時間是:86400秒(24小時)。

負載均衡支持什麼類型的會話保持?

針對7層(HTTP協議)服務,負載均衡係統是基於cookie的會話保持。針對4層(TCP協議)服務,負載均衡係統是基於IP地址的會話保持。

為什麼會話保持會失效?

目前如下場景下會話保持會遇到失效:

4層會話保持是基於源IP的,如果用戶是經過NAT網關訪問的,有可能NAT後的IP變化,導致會話保持失效

7層會話保持是基於cookie的,已知的問題為如後端應用返回302跳轉到其他負載均衡七層地址會導致此會話的cookie失效

我有多個域名,需要針對不同的域名配置不同的會話保持開啟和關閉規則,是否支持?如何操作?

支持。您可以通過負載均衡係統提供的“重寫服務cookie”的會話保持方式來實現這一需求。

會話保持可設置哪種類型的 cookie?

HTTP/HTTPS 監聽可使用植入 cookie 和重寫 cookie 來進行會話保持。

重寫cookie和植入cookie 是什麼?

  • 植入cookie是指由SLB服務器來給客戶端設置Cookie,即http/https響應報文中插入SERVERID字串和客戶配置時指定的超時時間,在此時間內會將同一客戶端的請求傳入到同一個後端ECS服務器,當客戶端瀏覽器再次此cookie訪問時SLB不會傳給後端的ECS服務器,即插入cookie關鍵字與值對後端ECS來說是完全不需要知道的。
  • 重寫cookie是指SLB實例的擁有者可以按照自己的需要自定義在後端的ECS服務器回複http/https響應中插入Cookie關鍵字與值,後端的ECS服務器上同時需要維護此cookie的超時時間與生存時間,在此響應報文經過SLB時,SLB會基於一定規則重寫cookie的值字串用於會話保持,當攜帶Cookie關鍵字與值的請求到來時會將此cookie關鍵字與值傳入到初始插入cookie的後端ECS服務器;但cookie值的內容已經與初始相比已經改變。

cookie 的超時時間應設置為多少?

  • 植入cookie可在控製台上配置1-86400秒
  • 重寫cookie需要用戶後端ECS服務維護超時時間

如何分析會話保持字串?

可以在瀏覽器中用F12查看回應報文中是否含有SERVERID字串或用戶指定的關鍵字,或者運行curl www.xxx.com -c /tmp/cookie123 保存一下cookie,再用 curl www.xxx.com -b /tmp/cookie123 訪問。

為什麼有時候會話保持失敗

  • 排查創建http/https監聽時“控製台配置”中是否開啟了會話保持功能。

  • http/https監聽在後端 RS 返回 4xx 響應碼的報文中無法插入會話保持所需 cookie;這種情況下如果仍強需求會話保持建議改用tcp監聽,因為tcp監聽是以源客戶端的IP來做會話保持的,另外後端ECS服務上也可以插入cookie,並增加cookie的判斷來多重保障。

  • 302重定向會改變會話保持中的SERVERID字串。

    SLB植入cookie時如果後端ECS中有回複302重定向的報文,將改變會話保持中的SERVERID字串,導致會話保持失效;建議排查方法在瀏覽器端捕抓請求與響應的回複,或用抓包軟件抓包後分析是否存在302的響應報文,對比前後報文的cookie中的SERVERID字串是否不同了;這種情況下如果仍強需求會話保持建議改用tcp監聽,因為tcp監聽是以源客戶端的IP來做會話保持的,另外後端ECS服務上也可以插入cookie,並增加cookie的判斷來多重保障

  • 排查會話保持時間設置是否過小導致。

最後更新:2016-12-20 17:02:28

  上一篇:go 如何獲取真實來源IP__常見問題_負載均衡-阿裏雲
  下一篇:go 健康檢查常見問題__常見問題_負載均衡-阿裏雲