Nginx: [error] limiting requests, excess: 5.370 by zone "perip", client: 203.0.113.5
limit_req rejected requests because the client exceeded the configured rate (burst) — response 503 (or 429).
limiting requests, excess: 5.370 by zone "perip"[error] limiting requests, excess by zone[error] limiting connections by zonelimiting requests, dry run, excess: by zone503 Service Temporarily Unavailable limit_req Meaning
Tune limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s; and limit_req zone=perip burst=20 nodelay;, set limit_req_status 429;, and exclude trusted IPs/health checks. Behind a proxy/CDN use the real client IP (real_ip_header) or everyone shares one IP and gets limited.
Common causes
- Rate too low for real traffic
- No burst allowance
- All users behind one proxy/NAT IP
- Static assets counted against the limit
- Health checks/bots hitting the limit
⚡ Quick fix
- Raise
rateandburst; usenodelay - Configure
set_real_ip_from+real_ip_header X-Forwarded-For - Apply limits only to sensitive locations; return 429 with
limit_req_status 429;
Detailed fix by platform
Nginx
limit_req_status 429; limit_req zone=perip burst=20 nodelay;
How to diagnose
- Zone — Rate/burst?
- IP — Real client IP?
- Scope — Which locations?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- 429 HTTP 429 Too Many Requests
- 499 Client Closed Request / client prematurely closed connection Nginx: [info] client prematurely closed connection while reading response header from upstream / access log status 499
- accept4() failed (24: Too many open files) Nginx: [crit] accept4() failed (24: Too many open files) / open() failed (24: Too many open files)
Most viewed in Nginx / Apache
- nginx: [emerg] unknown directive Nginx: nginx: [emerg] unknown directive "x" in /etc/nginx/sites-enabled/x:12 — configuration file test failed
- upstream timed out Nginx: upstream timed out (110: Connection timed out) while reading response header from upstream
- AH00558 Apache: AH00558: apache2: Could not reliably determine the server's fully qualified domain name
Other ways to find it
Where this error sits
Origin: Edge & web server. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 5 Nov 2026