nginx可以根據(jù)客戶端IP進(jìn)行負(fù)載均衡,,在upstream里設(shè)置ip_hash,就可以針對(duì)同一個(gè)C類地址段中的客戶端選擇同一個(gè)后端服務(wù)器,,除非那個(gè)后端服務(wù)器宕了才會(huì)換一個(gè),。
nginx的upstream目前支持的5種方式的分配 1、輪詢(默認(rèn)) 每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,,能自動(dòng)剔除,。 upstream backserver { server 192.168.0.14; server 192.168.0.15; } 2、指定權(quán)重 指定輪詢幾率,,weight和訪問(wèn)比率成正比,,用于后端服務(wù)器性能不均的情況。 upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 3,、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; } 4,、fair(第三方) 按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配,。 upstream backserver { server server1; server server2; fair; } 5,、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í)間 |
|
來(lái)自: 知足常樂(lè)983 > 《常用知識(shí)》