Nginx限流配置后为啥没生效?

UP主~宁馨 阅读 2

我用 Nginx 做接口限流,按官方文档配了 limit_req_zonelimit_req,但压测时发现请求根本没被限制,还是全部通过了。

我的配置是这样的:

http {
    limit_req_zone $binary_remote_addr zone=api_limit:10m rate=1r/s;

    server {
        listen 80;
        location /api/ {
            limit_req zone=api_limit burst=3 nodelay;
            proxy_pass http://backend;
        }
    }
}

明明设了每秒 1 个请求,burst 为 3,但用 ab 工具并发 10 个请求打过去,全部返回 200,一个都没被限。是我漏了什么关键配置吗?

我来解答 赞 0 收藏
二维码
手机扫码查看
1 条解答
博主瑞君
检查 limit_req_status 是否设置了状态码,默认是 503。你可能没看到限流效果是因为没处理返回码。加上这个:limit_req_status 429; 就这样。
点赞
2026-03-30 21:12