I recently updated to nginx 1.0.8 and tried to benchmark performance for cached dynamic pages (initially served by a Django app via proxy_pass) and for static pages. In both cases, nginx will not serve more than 3 or 4 requests (even without concurrent connections), so ab almost immediately reports:
apr_socket_recv: Connection reset by peer (54)
It is only when choosing a maximum of 4 (or fewer) requests that ab finishes successfully.
Why is that? I tried increasing the number of worker processes (no luck), but I assume that nginx should be capable of serving more than 4 requests without tweaking any configuration variable. Could it be that I accidentally triggered some sort of DOS protection mechanism?