# limit_req_zone 访问次数

http段

#perip为自定义名称,10m为占用空间大小
#rate后为请求频率 1r/s为每秒一次,1r/m每分钟一次,必须为整数
limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;
limit_req_zone $server_name zone=perserver:10m rate=10r/s;
1
2
3
4

server段

location /url {
   #perip,perserver为上面定义名字 burst为缓冲区 nodelay为立刻处理
   limit_req zone=perip burst=5 nodelay;
   limit_req zone=perserver burst=10;
   limit_req_status 503;
}
1
2
3
4
5
6

# limit_conn_zone 访问频率

http段

#IP限制
limit_conn_zone $binary_remote_addr zone=perip:10m;
#server限制
limit_conn_zone $server_name zone=perserver:10m;
1
2
3
4

http、server、location段

limit_conn perip 10;
limit_conn perserver 100;
#限流返回码
limit_conn_status 503;
1
2
3
4

# 参考