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.
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?
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.
Tags nginx rate-limiting