为什么我的 nginx 速率限制不起作用?

为什么我的 nginx 速率限制不起作用?

我在 Apache 前面安装了 Nginx 来终止 SSL 并过滤内容。我尝试使用以下方法让速率限制工作:这些文档

当我使用以下代码测试 10 个请求的循环时卷曲,所有请求/我的测试/仍在转发回 Apache - 其中 8 个显示相同的时间戳,精确到秒。我预计每秒只有一个请求到达 Apache。我忽略了什么?

我的卷曲命令:

for i in $(seq 1 10); do curl --verbose  --request "GET /mytest" https://myhost.com; done

nginx.conf

http {
   ...
   include /etc/nginx/conf.d/*.conf;
   ...
}

/etc/nginx/conf.d/rate-limit.conf

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

server {
   location /mytest/ {
      limit_req zone=one;    #:: removed burst=5 for testing - made no diff
   }
}

答案1

您所在的位置有速率限制,/mytest/但您正在请求/mytest(没有尾部斜杠)。这些请求与该位置不匹配。

相关内容