阿里云負載均衡會話保持常見問題

日期: 2017-04-08 00:45:10 / 人氣: 2390

會話保持的作用是什么?

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

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

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

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

針對 7 層(HTTP 協議)服務,負載均衡系統是基于 cookie 的會話保持。針對 4 層(TCP 協議)服務,負載均衡系統是基于源 IP + 端口的會話保持。

為什么會話保持會失效?

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

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

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

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

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

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

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

重寫 cookie 和植入 cookie 是什么?


  • 植入 cookie 是指由負載均衡服務器來給客戶端設置 Cookie,即 HTTP/HTTPS 響應報文中插入 SERVERID 字串和客戶配置時指定的超時時間,在此時間內會將同一客戶端的請求傳入到同一個后端 ECS 服務器,當客戶端瀏覽器再次此 cookie 訪問時,負載均衡不會傳給后端的 ECS 服務器,即插入 cookie 關鍵字與值對后端 ECS 來說是完全不需要知道的。
  • 重寫 cookie 是指負載均衡實例的擁有者可以按照自己的需要自定義在后端的 ECS 服務器回復 HTTP/HTTPS 響應中插入 cookie 關鍵字與值,后端的 ECS 服務器上同時需要維護此 cookie 的超時時間與生存時間,在此響應報文經過負載均衡時,負載均衡會基于一定規則重寫 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 字串。

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

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



現在致電 0755-88820392 OR 查看更多聯系方式 →

河北20选5走势图基本