nginx limit_req制限速度設定
2723 ワード
WIKI:
http://wiki.nginx.org/HttpLimitReqModule
リーキーバケツ原理(leaky bucket):
http://en.wikipedia.org/wiki/Leaky_bucket
例:
http://wiki.nginx.org/HttpLimitReqModule
リーキーバケツ原理(leaky bucket):
http://en.wikipedia.org/wiki/Leaky_bucket
例:
01
# IP , , 1-3req/sec, 1m,1M 16000 (IP)
02
limit_req_zone $binary_remote_addr zone=qps1:1m rate=1r/s;
03
limit_req_zone $binary_remote_addr zone=qps2:1m rate=2r/s;
04
limit_req_zone $binary_remote_addr zone=qps3:1m rate=3r/s;
05
06
server {
07
08
# qps=1, burst=5,
09
# qps=1
10
# burst=5 , ,
11
# 503
12
# [burst] , limit_req_error_log
13
# 1: =6, 1 , 1 , 4 :
14
#time request refuse sucess delay
15
#00:01 6 1 1 4
16
#00:02 0 0 1 3
17
#00:03 0 0 1 2
18
#00:04 0 0 1 1
19
#00:05 0 0 1 0
20
location /delay {
21
limit_req zone=qps1 burst=5;
22
}
23
24
# qps=1, burst=5,
25
# nodelay , qps = , qps > qps
26
# qps=(brust+qps-1)=5
27
# delay, , 503
28
# qps , limit_req_error_log
29
# 2: 5 , qps=1 :
30
#time request refuse sucess
31
#00:01 5 0 5
32
#00:05 5 0 5
33
#00:10 5 0 5
34
# 3: =5, qps>>1, :
35
#time request refuse sucess
36
#00:01 5 0 5
37
#00:02 5 4 1
38
#00:03 5 4 1
39
40
location /nodelay {
41
limit_req zone=qps1 burst=5 nodelay;
42
}
43
44
}