Haproxy 8種算法+Session共享

Haproxy有8種負載均衡算法(balance),分別如下:

1.balance roundrobin # 輪詢,軟負載均衡基本都具備這種算法

2.balance static-rr # 根據權重,建議使用

3.balance leastconn # 最少連接者先處理,建議使用

4.balance source # 根據請求源IP,建議使用

5.balance uri # 根據請求的URI

6.balance url_param,# 根據請求的URl參數'balance url_param' requires an URL parameter name

7.balance hdr(name) # 根據HTTP請求頭來鎖定每一次HTTP請求

8.balance rdp-cookie(name) # 根據據cookie(name)來鎖定並哈希每一次TCP請求

由於負載請求分發到不同服務器,可能導致Session會話不同步的問題,若想實現會話共享或保持,可採用如下3種方式:

1.用戶IP 識別

haroxy 將用戶IP經過hash計算後 指定到固定的真實服務器上(類似於nginx 的IP hash 指令)

配置指令

balance source

2.Cookie 識別

haproxy 將WEB服務端發送給客戶端的cookie中插入(或添加加前綴)haproxy定義的後端的服務器COOKIE ID。

配置指令例舉

cookie SESSION_COOKIE insert indirect nocache

用firebug可以觀察到用戶的請求頭的cookie裏 有類似” Cookie jsessionid=0bc588656ca05ecf7588c65f9be214f5; SESSION_COOKIE=app1” SESSION_COOKIE=app1就是haproxy添加的內容

3.Session 識別

haproxy 將後端服務器產生的session和後端服務器標識存在haproxy中的一張表裏。客戶端請求時先查詢這張表。

配置指令例舉

appsession JSESSIONID len 64 timeout 5h request-learn

發佈了60 篇原創文章 · 獲贊 71 · 訪問量 1450萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章