【发布时间】:2021-12-12 08:42:47
【问题描述】:
我正在尝试为使用 Nodejs 构建并部署在 DigitalOcean droplet 上的 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 文件中。
我已经参考了这些资源 - resource 1、resource 2。
非常感谢任何和所有帮助。如果我可以提供更多信息来帮助澄清我的问题,请告诉我。
更新
/etc/nginx/sites-available/default 的以下配置更新似乎已经解决了这个问题。
在我包括的主要上下文中:
# Rate Limiting
limit_req_zone $binary_remote_addr zone=by_ip:10m rate=7r/s;
在嵌套在我包含的服务器上下文中的位置上下文中:
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;
}
}
【问题讨论】:
标签: nginx nginx-config rate-limiting