Nginx request processing is slow when logging disabled

Om Prakash Shanmugam om at
Thu Jul 4 07:37:04 UTC 2019

Hello All,

I have an Nginx reverse proxy connected to uWSGI backend. I have configured
nginx to log to a centralized remote syslog service as:

<>,tag=nginx_error debug;*

The problem here is that, when I remove the above line from my nginx.conf,
the request processing time is becoming very high and It leads to client
timeout ( returns HTTP 460 ).

When I enable logging in my nginx.conf, I do not get HTTP 460 at all. But,
there's an extra overhead introduced which Increases the CPU Utilization.
What I suspect is that the nginx is sending the HTTP requests to my uWSGI
backend little slowly and my uWSGI backend is able to handle them
gracefully, write the response back to nginx successfully. The average
response time of the backend also spikes to 5x when logging is enabled.

Once I disable logging, the CPU Utilization decreases while the requests
are flooded to uWSGI backend and the backend takes time to return the
response within the defined client timeout period. If the request takes
time to process and if the client ( Android/iOS app) hasn't received the
response, It aborts the connection either when the timeout is reached or if
the user cancels the request.

I'd like to know whether I have to add a proxy buffer to my nginx to queue
up requests and send it to my backend instead of overflooding it. Or any
other solutions are appreciated.

I've also attached the log files below. any help is appreciated. Thanks in

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nginx.conf
Type: application/octet-stream
Size: 615 bytes
Desc: not available
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: error.log
Type: application/octet-stream
Size: 2621 bytes
Desc: not available
URL: <>

More information about the nginx mailing list