NGINX can calculate a request-rate decision without applying it. With limit_req_dry_run on, the client still receives the normal application response, while $limit_req_status records whether the request passed, would have been delayed, or would have been rejected. That makes dry run a change-admission tool, not merely a syntax ...