limiting requests, excess: (503 from limit_req) Nginx / Apache Origin: Edge & web server OSI layer 7 · Application Last updated 5 Nov 2026

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).

Exact message you may see 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
Seen on: Nginx Linux

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

  1. Raise rate and burst; use nodelay
  2. Configure set_real_ip_from + real_ip_header X-Forwarded-For
  3. Apply limits only to sensitive locations; return 429 with limit_req_status 429;

Detailed fix by platform

Nginx

  1. limit_req_status 429; limit_req zone=perip burst=20 nodelay;

How to diagnose

  1. Zone — Rate/burst?
  2. IP — Real client IP?
  3. 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:

Where this error sits

Origin: Edge & web server. Errors that are often confused with or caused by this one (click to open):

429 — HTTP 429 Too Many Requests (HTTP)429499 Client Closed Request / client prematurely closed connection — Nginx: [info] client prematurely closed connection while reading response header from upstream / access log status 499 (Nginx / Apache)499 Client Closed Req…accept4() failed (24: Too many open files) — Nginx: [crit] accept4() failed (24: Too many open files) / open() failed (24: Too many open files) (Nginx / Apache)accept4() failed (24:…cf-mitigated: challenge — API/app requests get 403 with cf-mitigated: challenge (Bot Fight Mode / challenge on non-browser clients) (Cloudflare)cf-mitigated: challen…ModSecurity: Access denied with code 403 — Nginx/Apache: ModSecurity: Access denied with code 403 (phase 2). Matched "Operator GE matched 5 at TX:anomaly_score" (Nginx / Apache)ModSecurity: Access d…nginx: client intended to send too large body — Nginx: [error] client intended to send too large body: 5242880 bytes (413 Request Entity Too Large) (Nginx / Apache)nginx: client intende…too many certificates already issued — Let's Encrypt: urn:ietf:params:acme:error:rateLimited :: too many certificates (5) already issued for this exact set of identifiers in the last 168 hours (SSL / TLS)too many certificates…worker_connections are not enough — Nginx: [alert] 1234#1234: *987 1024 worker_connections are not enough while connecting to upstream (Nginx / Apache)worker_connections ar…limiting …

Explore the map of this error Full error map →

🧠 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.