一、ip_hash:
ip_hash使用源地址哈希算法,將同一客戶(hù)端的請(qǐng)求總是發(fā)往同一個(gè)后端服務(wù)器,除非該服務(wù)器不可用。
ip_hash語(yǔ)法:
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com down;
server backend4.example.com;
}
ip_hash簡(jiǎn)單易用,但有如下問(wèn)題:
- 當(dāng)后端服務(wù)器宕機(jī)后,session會(huì)丟失;
- 來(lái)自同一局域網(wǎng)的客戶(hù)端會(huì)被轉(zhuǎn)發(fā)到同一個(gè)后端服務(wù)器,可能導(dǎo)致負(fù)載失衡;
- 不適用于CDN網(wǎng)絡(luò),不適用于前段還有代理的情況。
二、sticky_cookie_insert:
使用sticky_cookie_insert啟用會(huì)話親緣關(guān)系,這會(huì)導(dǎo)致來(lái)自同一客戶(hù)端的請(qǐng)求被傳遞到一組服務(wù)器在同一臺(tái)服務(wù)器。與ip_hash不同之處在于,它不是基于IP來(lái)判斷客戶(hù)端的,而是基于cookie來(lái)判斷。因此可以避免上述ip_hash中來(lái)自同一局域網(wǎng)的客戶(hù)端和前段代理導(dǎo)致負(fù)載失衡的情況。
語(yǔ)法:
upstream backend {
server backend1.example.com;
server backend2.example.com;
sticky_cookie_insert srv_id expires=1h domain=toxingwang.com path=/;
}
說(shuō)明:
- expires:設(shè)置瀏覽器中保持cookie的時(shí)間
- domain:定義cookie的域
- path:為cookie定義路徑
另外還可以使用后端服務(wù)器自身通過(guò)相關(guān)機(jī)制保持session同步,后面會(huì)詳細(xì)介紹!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。