nginx 限制某个参数的请求频率

目录

我们的某一个应用在请求中必然会带一个参数,而且每个用户带的这个参数的值不一样,现在需要对带这个参数的请求进行频率限制,下面直接上配置。

配置

# 配置效果 当访问的域名是 xx.jd.cn 时直接放过,当参数 p 的值不存在或为空的情况限制为 3r/s 其他带了正确参数的限制为 3r/s
map $host $limit_condition {
        default   "1";
        xx.jd.cn   "jingminglang";
        xx.jd.com   "$arg_p";
}

map $limit_condition $limit_arg {
    default $limit_condition;
    "jingminglang" "";
    "" "1";
}

limit_req_zone  $limit_arg  zone=one_2:300m   rate=3r/s;
server {
......
        limit_req   zone=one_2  burst=10 nodelay;
......
}

目录