nginx limit_req_zone 限制速率低于指定值

nginx limit_req_zone 限制速率低于指定值

我的配置中的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 将不允许并发请求通过。因此必须指定处理此问题的最小突发值。

相关内容