...
http {
...
# 添加IP白名单
geo $limit {
default 1;
192.168.0.0/24 0;
10.0.0.0/8 0;
127.0.0.0/8 0;
43.132.198.237/32 0;
}
# 匹配白名单不限速,否则限速,limit_key做匹配的key
map $limit $limit_key {
0 "";
1 $binary_remote_addr;
}
# 限制请求数,漏桶算法,每秒放行5个,超过的会排队
limit_req_zone $limit_key zone=req_ip:10m rate=5r/s;
# 超限返回444,直接断开链接,不响应任何内容
limit_req_status 444;
#限制连接数
limit_conn_zone $limit_key zone=con_ip:10m;
server {
...
# 限制下载速度100kBps每秒
limit_rate 100k;
# 限制下载burst为1M,前1M不限速,后面限速
limit_rate_after 1m;
# 限制并发连接为1
limit_conn con_ip 40;
location / {
# 两段限速,前100个不限速,后200个限速,限制5个/秒,超过断开链接
...
}
location /public/pkg/ {
# 限制下载并发为2,防止刷流量
limit_conn con_ip 2;
limit_req zone=req_ip burst=10;
}
}
}
标签: