The connection exhaustion cliff
Every worker_connections slot is in use. nginx accepts connections from the kernel but has no structure to process them, so it drops them. There is no graceful degradation — it is a cliff. Underneath it is usually a slow backend piling up connections, keepalive idle accumulation, or the default 512 slots being far too low for a reverse-proxy workload (where each request needs two).
- accepts > handled gap growing in stub_status
- active connections near worker_connections × worker_processes
- worker_connections are not enough in the error log
- request rate dropping while traffic still arrives







