# Nginx: [error] limiting requests, excess: 5.370 by zone "perip", client: 203.0.113.5

**Code:** `limiting requests, excess: (503 from limit_req)` · **Category:** Nginx / Apache · **Seen on:** Nginx, Linux

`limit_req` rejected requests because the client exceeded the configured rate (burst) — response 503 (or 429).

## 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?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/nginx-apache/nginx-limit-req-503-rate-limiting)
