Nginx教程

Nginx根据请求参数限流

本文主要是介绍Nginx根据请求参数限流,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

根据业务方的需求,针对/user/login/api.php路径下,userid=(1234567890|1234567891|1234567892)的接口做IP请求限制。

##黑名单
geo $remote_addr $deny_remote_addr {
    172.25.8.0/16 1;
    10.250.11.92   1;
    default 0;
}

map $deny_remote_addr$request_uri $userid {
    ~*^1/user/login/api.php?.*\buserid=(1234567890|1234567891|1234567892)\b.* "X";
    default "";
}

limit_req_zone $userid zone=userid_limit_zone:10m rate=100r/m;

server {
    listen       80;
    server_name  limit.example.com;

    index index.html index.htm index.php;
    root /data/web/api/;

    location ~ /user/login/
    {
         limit_req zone=gameid_limit_zone burst=30 nodelay;
         if ($gameid = "X") {
             access_log /data/logs/$host.limit.log access;
         }
    }
    access_log /data/logs/$host.log access;
}
这篇关于Nginx根据请求参数限流的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!