nginx的負(fù)載均衡算法有哪些

nginx的負(fù)載均衡算法有哪些

nginx支持的負(fù)載均衡調(diào)度算法

1.round robin(默認(rèn)) ? (推薦學(xué)習(xí):nginx教程

輪詢方式,依次將請(qǐng)求分配到各個(gè)后臺(tái)服務(wù)器中,默認(rèn)的負(fù)載均衡方式。?

適用于后臺(tái)機(jī)器性能一致的情況。?

掛掉的機(jī)器可以自動(dòng)從服務(wù)列表中剔除。

2.weight

根據(jù)權(quán)重來(lái)分發(fā)請(qǐng)求到不同的機(jī)器中,指定輪詢幾率,weight和訪問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況。??

例如:??

upstream?bakend?{???? server?192.168.0.14?weight=10;???? server?192.168.0.15?weight=10;???? }

3. IP_hash

根據(jù)請(qǐng)求者ip的hash值將請(qǐng)求發(fā)送到后臺(tái)服務(wù)器中,可以保證來(lái)自同一ip的請(qǐng)求被打到固定的機(jī)器上,可以解決session問(wèn)題。

例如:

upstream?bakend?{???? ip_hash;???? server?192.168.0.14:88;???? server?192.168.0.15:80;???? }

4.url_hash(第三方)

根據(jù)請(qǐng)求的url的hash值將請(qǐng)求分到不同的機(jī)器中,當(dāng)后臺(tái)服務(wù)器為緩存的時(shí)候效率高。

例如:

在upstream中加入hash語(yǔ)句,server語(yǔ)句中不能寫(xiě)入weight等其他的參數(shù),hash_method是使用的hash算法??

upstream?backend?{???? server?squid1:3128;???? server?squid2:3128;???? hash?$request_uri;???? hash_method?crc32;???? }

tips:??

upstream bakend{#定義負(fù)載均衡設(shè)備的Ip及設(shè)備狀態(tài)? ??

ip_hash;???? server?127.0.0.1:9090?down;???? server?127.0.0.1:8080?weight=2;???? server?127.0.0.1:6060;???? server?127.0.0.1:7070?backup;? }

在需要使用負(fù)載均衡的server中增加??

proxy_pass?http://bakend/;

每個(gè)設(shè)備的狀態(tài)設(shè)置為:?

1.down 表示單前的server暫時(shí)不參與負(fù)載??

2.weight 默認(rèn)為1.weight越大,負(fù)載的權(quán)重就越大。??

3.max_fails :允許請(qǐng)求失敗的次數(shù)默認(rèn)為1.當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤??

4.fail_timeout:max_fails次失敗后,暫停的時(shí)間。??

5.backup: 其它所有的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器。所以這臺(tái)機(jī)器壓力會(huì)最輕。??

nginx支持同時(shí)設(shè)置多組的負(fù)載均衡,用來(lái)給不用的server來(lái)使用。??

client_body_in_file_only 設(shè)置為On 可以講client post過(guò)來(lái)的數(shù)據(jù)記錄到文件中用來(lái)做debug??

client_body_temp_path 設(shè)置記錄文件的目錄 可以設(shè)置最多3層目錄??

location 對(duì)URL進(jìn)行匹配.可以進(jìn)行重定向或者進(jìn)行新的代理 負(fù)載均衡

5. fair(第三方)

根據(jù)后臺(tái)響應(yīng)時(shí)間來(lái)分發(fā)請(qǐng)求,響應(yīng)時(shí)間短的分發(fā)的請(qǐng)求多。

例如:

upstream?backend?{???? server?server1;???? server?server2;???? fair;???? }

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享