一、概述
nginx的upstream目前支持的分配算法:
1、round-robin 輪詢1:1輪流處理請(qǐng)求(默認(rèn))
每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的應(yīng)用服務(wù)器,如果應(yīng)用服務(wù)器down掉,自動(dòng)剔除,剩下的繼續(xù)輪詢。
2、weight 權(quán)重(加權(quán)輪詢)
通過配置權(quán)重,指定輪詢幾率,權(quán)重和訪問比率成正比,用于應(yīng)用服務(wù)器性能不均的情況。
3、ip_hash 哈希算法
每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)應(yīng)用服務(wù)器,可以解決Session共享的問題。應(yīng)用服務(wù)器如果故障需要手工down掉。
參數(shù)含義:
down:表示單前的server暫時(shí)不參與負(fù)載
weight:默認(rèn)為1,weight越大,負(fù)載的權(quán)重就越大。
max_fails:允許請(qǐng)求失敗的次數(shù)默認(rèn)為1.當(dāng)超過最大次數(shù)時(shí),返回proxy_next_upstream模塊定義的錯(cuò)誤
fail_timeout:max_fails次失敗后,暫停的時(shí)間。
backup:其它所有的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器。
二、配置
?1、round-robin 輪詢(默認(rèn))
upstream?tg-t4?{ ????server?10.0.0.110:8099; ????server?10.0.0.110:8098; } server?{ ????listen?8096; ????server_name?www.tg-t4.com; ????location?/?{ ????proxy_pass?http://tg-t4; ????} }
訪問結(jié)果:ABABABABA
2、加權(quán)輪詢
upstream?tg-t4?{ ????server?10.0.0.110:8099?weight=2; ????server?10.0.0.110:8098?weight=5; } server?{ ????listen?8096; ????server_name?www.tg-t4.com; ????location?/?{ ????proxy_pass?http://tg-t4; ????} }
訪問結(jié)果:ABBABB ABBABB
注:weight影響的訪問結(jié)果是按最小比例算的,而不是理想狀態(tài)下:AABBBBB AABBBBB
3、ip_hash
upstream?tg-t4?{ ????server?10.0.0.110:8099; ????server?10.0.0.110:8098; ????ip_hash; } server?{ ????listen?8096; ????server_name?www.tg-t4.com; ????location?/?{ ????proxy_pass?http://tg-t4; ????} }
訪問結(jié)果:
IP1:AAAAAA
IP2:BBBBBB
4、熱備
upstream?tg-t4?{ ????server?10.0.0.110:8099; ????server?10.0.0.110:8098?backup; } server?{ ????listen?8096; ????server_name?www.tg-t4.com; ????location?/?{ ????proxy_pass?http://tg-t4; ????} }
訪問結(jié)果:
訪問1:兩個(gè)服務(wù)均正常。AAAAAA
訪問2:停用10.0.0.110:8099。BBBBBB
訪問3:重啟10.0.0.110:8099。AAAAAA
5、加參數(shù)優(yōu)化
upstream?tg-t4?{ ????server?10.0.0.110:8099?weight=1?max_fails=2?fail_timeout=2; ????server?10.0.0.110:8098?weight=3?max_fails=2?fail_timeout=2?backup; } server?{ ????listen?8096; ????server_name?www.tg-t4.com; ????location?/?{ ????proxy_pass?http://tg-t4; ????} }
訪問結(jié)果:同4
backup優(yōu)先級(jí)最高,當(dāng)有了這個(gè)參數(shù)設(shè)定,那么所對(duì)應(yīng)的服務(wù)只能作為熱備。