nginx limit_req_zone limitando a uma taxa menor que o especificado

1

A configuração de limit_req_zone na minha configuração é a seguinte:

limit_req_zone $nginx_version zone=site1:10m rate=1000r/s;

Eu não quero mais de 1000 solicitações por segundo do site1 da zona. Eu uso esta zona na minha localização da seguinte forma:

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;  
}

No entanto, quando eu realmente uso o ngxtop para ver quantas solicitações estou recebendo e passando, vejo que o site1 está realmente enviando aproximadamente 600 solicitações por segundo, mas ainda aproximadamente metade delas está sendo descartada no nginx. Existe algum problema com minha configuração? Devo aumentar o espaço de memória? Eu tentei com 100m, mas ainda vi o mesmo comportamento. Há mais alguma coisa que eu esteja perdendo aqui que possa ajudar?

    
por ZeroG 23.05.2017 / 12:03

1 resposta

0

O problema está relacionado a não especificar o valor de burst . Devido a isso, o nginx não permitirá a passagem de solicitações simultâneas. Portanto, um valor mínimo de burst para lidar com isso deve ser especificado.

    
por 23.05.2017 / 12:30