|
一、轮询(默认)
, h' v8 t" E8 o$ U每一个请求按时间顺序逐一分配到不一样的后端服务器,若是后端服务器down掉,能自动剔除。 , V, P( q. Z; `
upstream backserver { 3 K; E( X5 q+ l9 Y& L. c3 o t
server 192.168.0.14;
; e: ^2 Q8 i6 g9 F, p, Fserver 192.168.0.15; 5 C' z% f X6 ]9 f- C
}
5 b/ P; T% ^; e% `: F+ U- P- g; V* U3 C* [
二、指定权重: `, }9 B7 V1 L A7 X
指定轮询概率,weight和访问比率成正比,用于后端服务器性能不均的状况。 1 Q/ W9 o2 g5 `+ [1 Q. C" T9 u
upstream backserver {
" F/ P! c5 _* ~( E. }server 192.168.0.14 weight=8; ; O! \1 [/ e4 O' j3 |- b
server 192.168.0.15 weight=10; % A& k( ^* r& g- U/ n& S1 ?6 h4 b
}
" N+ [: ~4 Y+ _$ a9 }- K7 y W( C5 u0 ~8 g4 Y, l* E3 p7 L W
三、IP绑定 ip_hash5 J) p: @+ G) F2 ?
每一个请求按访问ip的hash结果分配,这样每一个访客固定访问一个后端服务器,能够解决session的问题。
' p$ F$ j+ J+ d3 _. s; [upstream backserver {
5 ~ y8 y' W+ k8 ^! b* jip_hash;
4 Y$ \% ~# D6 K1 Kserver 192.168.0.14:88; 9 q; n) @, ]0 s9 Q5 d
server 192.168.0.15:80; ' L6 w2 T9 o. R9 ~$ t. X& c
} ' {0 a% y6 A" w8 I) K9 P1 p* ^
7 ]3 ]9 s" K0 ^7 s* \
四、fair(第三方)
* ~+ J. q# I+ `6 m: a0 R: D按后端服务器的响应时间来分配请求,响应时间短的优先分配。 , `4 x& A. N' U- f1 f+ u+ c+ t- `
upstream backserver {
, {0 |5 }$ ?$ u- @* Q: Vserver server1; 3 {$ f! }/ m) U: e- i& t
server server2;
) ?$ q5 |* C) F) ^/ n' M7 pfair; 3 \6 d7 z2 H. Q) [
}
7 h7 a" c- M5 m' A n0 M! x0 @ e; [0 r3 H8 k& O
五、url_hash(第三方)
0 r; ?/ @$ H# a8 i* v按访问url的hash结果来分配请求,使每一个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
7 G% G" A* R) vupstream backserver {
: ^5 c J) a5 p& V) aserver squid1:3128; ! j0 `! ]4 S- N) G6 Z0 l
server squid2:3128;
* ]) m |8 U7 L6 K1 B* |hash $request_uri; . e& q' `% j; g5 D' [7 c4 \
hash_method crc32; ; m% V0 o- m6 A
} 3 M- i% I8 N& D5 g3 h- a
* Y: M+ W4 r' `5 h2 C
在须要使用负载均衡的server中增长
# p+ d( F, k R- }* J' O. i G5 `0 c% N& u/ Y8 f: f: b% J& o0 U
proxy_pass http://backserver/; 8 l5 O5 ?) H% c/ D+ R, z( p
upstream backserver{
7 T8 [6 H; _2 |ip_hash; 6 a7 @4 i# F( p% H; X( P+ u
server 127.0.0.1:9090 down; (down 表示当前的server暂时不参与负载)
! ~/ Y" z+ i- b: S; v( |server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大)
8 F4 `, W) G& P3 h$ Qserver 127.0.0.1:6060;
; h) r/ Z" u+ X& Y8 ~( n5 Xserver 127.0.0.1:7070 backup; (其它全部的非backup机器down或者忙的时候,请求backup机器)
) ~ T- C2 `6 C}
/ a1 Z% A- n, G/ C/ t& s: R0 e0 v, w; x
, e7 O: ]4 h7 ~max_fails :容许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误 ( C% C, l$ `1 W+ l) q9 j' k
fail_timeout:max_fails次失败后,暂停的时间前端 , ^: M3 F4 e* t
|