nginx 負(fù)載均衡策略有哪幾種
??nginx的upstream目前支持的5種方式的分配:
??一、輪詢(默認(rèn))
??每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除。
??upstream backserver {
??server 192.168.0.14;
??server 192.168.0.15;
??}
??二、指定權(quán)重
??指定輪詢幾率,weight和訪問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況。
??upstream backserver {
??server 192.168.0.14 weight=10;
??server 192.168.0.15 weight=10;
??}
??三、IP綁定 ip_hash
??每個(gè)請(qǐng)求按訪問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問(wèn)一個(gè)后端服務(wù)器,可以解決session的問(wèn)題。
??upstream backserver {
??ip_hash;
??server 192.168.0.14:88;
??server 192.168.0.15:80;
??}
??四、fair(第三方)
??按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。
??upstream backserver {
??server server1;
??server server2;
??fair;
??}
??五、url_hash(第三方)
??按訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,后端服務(wù)器為緩存時(shí)比較有效。
??upstream backserver {
??server squid1:3128;
??server squid2:3128;
??hash $request_uri;
??hash_method crc32;
??}
??在需要使用負(fù)載均衡的server中增加
??proxy_pass http://backserver/;
??upstream backserver{
??ip_hash;
??server 127.0.0.1:9090 down; (down 表示單前的server暫時(shí)不參與負(fù)載)
??server 127.0.0.1:8080 weight=2; (weight 默認(rèn)為1.weight越大,負(fù)載的權(quán)重就越大)
??server 127.0.0.1:6060;
??server 127.0.0.1:7070 backup; (其它所有的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器)
??}
??max_fails :允許請(qǐng)求失敗的次數(shù)默認(rèn)為1.當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤
??fail_timeout:max_fails次失敗后,暫停的時(shí)間
??以上便是5種負(fù)載均衡策略的實(shí)現(xiàn)方式,其中除了輪詢和輪詢權(quán)重外,都是Nginx根據(jù)不同的算法實(shí)現(xiàn)的。在實(shí)際運(yùn)用中,需要根據(jù)不同的場(chǎng)景選擇性運(yùn)用,大都是多種策略結(jié)合使用以達(dá)到實(shí)際需求。小伙伴們要想獲得更多nginx 負(fù)載均衡策略的內(nèi)容,請(qǐng)關(guān)注新網(wǎng)!
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科