haproxy負(fù)載均衡保持客戶(hù)端和服務(wù)器Session親緣性的三種方式:
1. 用戶(hù)IP 識(shí)別
haproxy 將用戶(hù)IP經(jīng)過(guò)hash計(jì)算后 指定到固定的真實(shí)服務(wù)器上(類(lèi)似于nginx 的IP hash 指令)
配置指令 balance source
2. cookie 識(shí)別
haproxy 將WEB服務(wù)端發(fā)送給客戶(hù)端的cookie中插入(或添加前綴)haproxy定義的后端的服務(wù)器COOKIE ID。
配置指令例舉 cookie SESSION_COOKIE insert indirect nocache
用firebug可以觀察到用戶(hù)的請(qǐng)求頭的cookie里 有類(lèi)似" Cookie jsessionid=0bc588656ca05ecf7588c65f9be214f5; SESSION_COOKIE=app1" SESSION_COOKIE=app1就是haproxy添加的內(nèi)容
3. session 識(shí)別
haproxy 將后端服務(wù)器產(chǎn)生的session和后端服務(wù)器標(biāo)識(shí)存在haproxy中的一張表里??蛻?hù)端請(qǐng)求時(shí)先查詢(xún)這張表。
配置指令例舉 appsession JSESSIONID len 64 timeout 5h request-learn