Você está usando limit_req zone=zonename burst=20;
, para fazer com que os limites funcionem eu preciso alterá-lo:
limit_req_zone $http_x_forwarded_for zone=zonename:20m rate=100r/s; # you missed line like this
server {
.....
location /public {
limit_req zone=zonename nodelay;
.....
}
}
Claro, certifique-se de modificá-lo de acordo com os seus requisitos de limite.