我的配置中的limit_req_zone配置如下:
limit_req_zone $nginx_version zone=site1:10m rate=1000r/s;
我不希望来自区域 site1 每秒的请求数超过 1000 个。我在我的位置使用此区域,如下所示:
location /exchange/site1/
{
limit_req zone=site1 nodelay;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header Content-Type application/json;
proxy_pass http://lb-server/site1/;
proxy_redirect off;
}
但是,当我实际使用 ngxtop 查看我收到和传递了多少请求时,我发现 site1 实际上每秒发送大约 600 个请求,但其中大约一半在 nginx 中被丢弃。我的配置有问题吗?我应该增加内存空间吗?我尝试使用 100m,但仍然看到相同的行为。这里还有什么我遗漏的可以提供帮助的东西吗?
答案1
该问题与未指定突发值。因此,nginx 将不允许并发请求通过。因此必须指定处理此问题的最小突发值。