ryandotsmith / nginx-buildpack

Run NGINX in front of your app server on Heroku
456 stars 783 forks source link

Does nginx actually closes connections after client_body_timeout? #47

Open hllhll opened 9 years ago

hllhll commented 9 years ago

Or is it Heroku's router ignoring the socket close?

TL;DR - Does nginx closes the socket after client_body_timeout? or Heroku's router chooses to ignore the connection close from the dyno side? and if so, how to overcome it?

If the connection is idle for more then 5 seconds I get the exp expected output: measure#nginx.service=5.006 request_id=xxxxxxx

But, the router does not seem to consider this request as served. I Have no indication that the socket actually closes so that the router would report an error to the user, the router still waits for the request to complete after these 5 seconds. If any byte is transmitted after that the routed does picks up the connection closed by the dyno, but that is not my scenario, I'm assuming in some point of time the client stops sending the body altogether (let's say a mobile client). If the socket does close, how come the router ignores it? Or at least untill it gets any additional data byte from the user... I have to wait for the standard 55 seconds before the router cuts off due to idle connection, missing the whole point of my need for the nginx.