網(wǎng)站建設(shè)制作設(shè)計營銷公司四川/寧波seo網(wǎng)絡(luò)推廣優(yōu)質(zhì)團(tuán)隊
在http訪問請求中,web服務(wù)器會自動為同一個瀏覽器的訪問用戶自動創(chuàng)建唯一的session,提供數(shù)據(jù)存儲功能。最常見的,會把用戶的登錄信息、用戶信息存儲在session中,以保持登錄狀態(tài)。
只要用戶不重啟瀏覽器,每次http短連接請求,理論上服務(wù)端都能定位到session,保持會話。
當(dāng)只有一臺web服務(wù)器提供服務(wù)時,每次http短連接請求,都能夠正確路由到存儲session的對應(yīng)web服務(wù)器。
多臺web服務(wù)器來保證高可用時,每次http短連接請求就不一定能路由到正確的session了。假設(shè)用戶包含登錄信息的session記錄在第一臺web服務(wù)器上,而反向代理將之后的請求路由到另一臺web服務(wù)器上了,這樣就找不到已登錄的session相關(guān)信息,而導(dǎo)致用戶需要重新登錄。
可以用以下幾種方法處理:
1、session同步法
多個web服務(wù)器之間相互同步session,這樣每個web服務(wù)器之間都包含全部的session。
問題:session的同步需要數(shù)據(jù)傳輸,占內(nèi)網(wǎng)帶寬,有時延
2、客戶端存儲法
服務(wù)端存儲所有用戶的session,內(nèi)存占用較大,可以將session存儲到瀏覽器cookie中,每個端只要存儲一個用戶的數(shù)據(jù)了。
問題:數(shù)據(jù)存儲在端上,并在網(wǎng)絡(luò)傳輸,存在泄漏、篡改、竊取等安全隱患
3、反向代理hash一致性
反向代理層使用用戶ip來做hash,以保證同一個ip的請求落在同一個web服務(wù)器上。
4、后端統(tǒng)一存儲
采用redis、memcache、mysql統(tǒng)一存儲session.