|
一、轮询(默认)1 m$ E" U' x' h3 E4 Z% H, y
每一个请求按时间顺序逐一分配到不一样的后端服务器,若是后端服务器down掉,能自动剔除。
, |5 q8 M7 R/ [7 S" K8 \: A5 h7 fupstream backserver {
7 }$ X; |! H/ l' J: [9 |1 B- ^server 192.168.0.14;
8 q; h' B8 y- m! x$ S6 F% `5 p( Tserver 192.168.0.15;
7 O9 S3 f8 h: r; V, N1 N}
( }# U+ F- a3 d" O
( m' X) S8 U+ i, v9 I4 c二、指定权重
" N8 h" V1 y, o1 S2 V指定轮询概率,weight和访问比率成正比,用于后端服务器性能不均的状况。 ) r# g3 w% ]* L- ?' k+ ?
upstream backserver {
6 W# \* i: c3 {. n% ?- C- aserver 192.168.0.14 weight=8;
, m1 ~! U3 o0 d8 p) tserver 192.168.0.15 weight=10;
" I) L! F1 C3 S$ H+ n7 u' u& w5 r} ) e5 Q Z# k+ ^4 U
. J. S# L+ a5 Z3 k三、IP绑定 ip_hash
* w2 @8 T+ j1 [0 z! ]每一个请求按访问ip的hash结果分配,这样每一个访客固定访问一个后端服务器,能够解决session的问题。 6 f+ {# y+ A) l/ ^* a+ T
upstream backserver {
+ T+ ^- a& n* m k7 ~. L1 Nip_hash;
5 D, b( b: }0 [4 r5 j! [5 |server 192.168.0.14:88;
' T. ^7 {$ z$ n7 Userver 192.168.0.15:80; + B4 ?; o/ ?1 c
} # i, @- M+ W* e* z" R6 S3 ?
/ |: f' O/ Z# R- p r: E) z( R- @四、fair(第三方)
5 `0 P3 J% T7 [) D' u( s按后端服务器的响应时间来分配请求,响应时间短的优先分配。
, k6 m, w9 a7 Z/ Pupstream backserver {
' e$ Q2 v3 N" U0 F4 Aserver server1;
2 a% k* p7 p2 V4 A! C# z; w; Tserver server2; % s+ l1 {5 ~7 b, w* l* r! \1 k
fair;
' Q! S# Y8 i0 q" q}
8 y0 [/ H1 h; V6 C4 ]- z4 {
) [/ z/ r: \6 _$ d1 P& v: c3 ^五、url_hash(第三方)3 B& h. Q- d) k' \- c! x, s
按访问url的hash结果来分配请求,使每一个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 . e, |) g* ^5 D! n! z: ]
upstream backserver {
& z% r! `$ {8 Xserver squid1:3128; " ?7 b* l4 ^ p/ V( b; v
server squid2:3128; M% I! k( R! U* t5 x
hash $request_uri; / i( k8 e+ c4 ^6 a8 q0 o4 f
hash_method crc32; . t# |; f9 }5 G! C% c4 U- |
}
: v O# d( k; x" R) C+ j9 r2 h) @5 @2 m' ~; M( j
在须要使用负载均衡的server中增长
) v# s+ u7 F- k3 B( \, k* X- Q, n7 G9 z& s8 Q5 P4 {% E; y
proxy_pass http://backserver/;
* Y" p9 L. ]+ [; uupstream backserver{ % h, F6 G- k% W r2 ]
ip_hash; ; s2 l# y* O. L8 a: O3 Q9 I
server 127.0.0.1:9090 down; (down 表示当前的server暂时不参与负载) 6 V) s6 I* z; D
server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大) 0 m7 X5 `5 r. R
server 127.0.0.1:6060;
' \9 ?% K. [4 userver 127.0.0.1:7070 backup; (其它全部的非backup机器down或者忙的时候,请求backup机器) 2 l" `" \+ H/ y; W# n* a) C
}
( H5 L$ K2 z' }# s l; I- f0 ^0 q3 q! j
max_fails :容许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误 2 `. g/ d% t' c ^
fail_timeout:max_fails次失败后,暂停的时间前端 . W0 _7 j% D; E; e7 C9 {- A1 C
|