如何实现Nginx基础限流?Node.js API部署后限流规则不生效求助
Nginx限流配置失效问题及解决方案
我正在为部署在DigitalOcean Droplet上、基于Node.js开发的API测试基础Nginx限流配置,预期当客户端每分钟请求超过1次(测试用低阈值)时返回503错误,但实际客户端可无限制发起请求。
初始失败配置尝试
我先后尝试了两种配置方式均未生效:
- 第一种:在
nginx.conf的http块中添加如下配置:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server { location / { limit_req zone=one burst=5; }
- 第二种:将上述配置单独编写http、server块,添加到
/etc/nginx/sites-available/default文件中。
我已参考Nginx官方限流指南与ngx_http_limit_req_module模块文档,仍未解决问题。
最终解决配置
修改/etc/nginx/sites-available/default的配置后问题解决,正确配置如下:
主上下文配置
# Rate Limiting limit_req_zone $binary_remote_addr zone=by_ip:10m rate=7r/s;
server上下文嵌套的location上下文配置
server { root /var/www/html; server_name <SERVER NAMES>; location / { limit_req zone=by_ip; proxy_pass http://localhost:<PORT VALUE>; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
内容的提问来源于stack exchange,提问作者eest
相关产品推荐
相关产品推荐

