Можно например сделать так, что в секунду можно 4 запроса, но при этом сделать дополнительное условие, при котором 40 запросов за 10 секунд - это уже не нормальное поведение?
Можно
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
даже в каждый локэшн можно вносить burst
limit_req zone=one burst=4; -
burstкак раз и есть то что вам надо разрешает всплески до 4х. почитайте про
ngx_http_limit_req_module и ngx_http_limit_conn_module
Если на уровне nginx не подходит то можно разрулить с помощью файрвола (Csf, fail2ban).