很多團(tuán)隊(duì)會(huì)在生產(chǎn)環(huán)境中引入Nginx來(lái)做負(fù)載均衡,下面給大家簡(jiǎn)要說(shuō)說(shuō)Nginx負(fù)載均衡中的6種不同策略。
輪詢
輪詢是默認(rèn)策略,每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同節(jié)點(diǎn),后端各個(gè)節(jié)點(diǎn)平均處理請(qǐng)求。

平均輪詢
加權(quán)輪詢
根據(jù)節(jié)點(diǎn)的權(quán)重進(jìn)行輪詢,權(quán)重越高分配到的請(qǐng)求越多。適用于服務(wù)器性能差別比較大的情況,比如硬件配置差別較大,或者新老服務(wù)器混用的時(shí)候。

加權(quán)輪詢,權(quán)重高,分配多
least_conn
按節(jié)點(diǎn)的連接數(shù)來(lái)分配,把請(qǐng)求優(yōu)先分配給連接數(shù)少的節(jié)點(diǎn)。該策略主要為了解決,各個(gè)節(jié)點(diǎn)請(qǐng)求處理時(shí)間長(zhǎng)短不一造成某些節(jié)點(diǎn)超負(fù)荷的情況。
fair
按節(jié)點(diǎn)的響應(yīng)時(shí)間長(zhǎng)短來(lái)分配,把請(qǐng)求優(yōu)先分配給響應(yīng)時(shí)間短的節(jié)點(diǎn)。該策略可用于節(jié)點(diǎn)性能不均衡的情況,也可以防止某個(gè)節(jié)點(diǎn)突發(fā)性能問(wèn)題還繼續(xù)接收同樣多的請(qǐng)求,從而造成雪崩的情況。
ip_hash
按客戶端來(lái)源IP的hash結(jié)果分配。這樣相同客戶端的請(qǐng)求會(huì)被分配到同一個(gè)節(jié)點(diǎn)上,主要是為了解決session問(wèn)題。比如,某個(gè)用戶的登錄操作,登錄的請(qǐng)求被分配到節(jié)點(diǎn)1,對(duì)用戶來(lái)說(shuō)他已經(jīng)登錄成功了。有可能下一刻,該用戶某個(gè)需要權(quán)限才能訪問(wèn)的請(qǐng)求被分配到節(jié)點(diǎn)2了。但是對(duì)節(jié)點(diǎn)2來(lái)說(shuō)該用戶是沒(méi)有登錄的,會(huì)提示用戶沒(méi)登錄。

按客戶端ip的hash結(jié)果分發(fā)
url_hash
按訪問(wèn)URL的hash結(jié)果分配。這樣相同的url會(huì)被分配到同一個(gè)節(jié)點(diǎn),主要為了提高緩存命中率。比如,為了提高訪問(wèn)性能,服務(wù)端有大量數(shù)據(jù)或者資源文件需要被緩存。使用這種策略,可以節(jié)省緩存空間,提高緩存命中率。

按url的hash結(jié)果分發(fā)