Nginx速率限制仅在某个位置获取或发布请求
我在nginx中配置了一台服务器,并使用以下代码创建我的速率限制区域:Nginx速率限制仅在某个位置获取或发布请求,nginx,nginx-location,nginx-config,rate-limiting,Nginx,Nginx Location,Nginx Config,Rate Limiting,我在nginx中配置了一台服务器,并使用以下代码创建我的速率限制区域: limit\u req\u zone$key zone=six\u zone:10m速率=60r/m 在我所在的位置,我使用一个模块来处理请求。此位置支持GET、POST和DELETE方法。我试图限制只获取该位置的请求。这是我认为可能有效的方法,但事实并非如此 location /api/ { if ($request_method = GET) { limit_req zone=six_zone;
limit\u req\u zone$key zone=six\u zone:10m速率=60r/m代码>
在我所在的位置,我使用一个模块来处理请求。此位置支持GET、POST和DELETE方法。我试图限制只获取该位置的请求。这是我认为可能有效的方法,但事实并非如此
location /api/ {
if ($request_method = GET) {
limit_req zone=six_zone;
}
reqfwder;
}
对我如何处理这个问题有什么帮助或指点吗?谢谢。希望这有帮助
在NGINX配置的http上下文中,添加以下行:
http {
... # your nginx.conf here
# Maps ip address to $limit variable if request is of type POST
map $request_method $limit {
default "";
POST $binary_remote_addr;
}
# Creates 10mb zone in memory for storing binary ips
limit_req_zone $limit zone=my_zone:10m rate=1r/s;
}
**Rate limiting for the entire NGINX process:**
http {
... # your nginx.conf here
limit_req zone=global_zone;
}
参考: