Does anyone have some ideas about this? I have an update to do this weekend that will require me to bounce the upstream, and it would be great not to drop any connections in the process. Hoping to hear something shortly. Thank you!!
--- On Thu, 3/19/09, Rt Ibmer <rtibmx@yahoo.com> wrote:
> From: Rt Ibmer <rtibmx@yahoo.com>
> Subject: Hold requests long enough for me to restart upstream?
> To: "nginx" <nginx@sysoev.ru>
> Date: Thursday, March 19, 2009, 10:01 PM
>
> I use nginx 0.6.31 with proxy_pass to front end requests to
> a servlet running in Jetty (the upstream).
>
> Sometimes I need to update a jar on the upstream, which
> requires restarting jetty to take effect.
>
> I am looking for a way to tell nginx that if it gets a
> connection failure at the upstream (which is what happens
> when jetty is in the process of restarting since nothing is
> listening on that port during the restart) that it should
> give it say 20 seconds before erroring out the request back
> to the browser.
>
> Certainly this will back up the processing a bit, but it
> should be very short as it only takes Jetty about 10 seconds
> to restart and start listening again on its port. During
> slow periods we are only getting 2-5 requests per second so
> there should be plenty of resources for nginx to queue up
> these requests while it waits for Jetty.
>
> Can someone please tell me what settings I should use so
> that nginx will wait up to 20 seconds for the upstream to
> restart so that it doesn't return an error to the browser?
>
> In the past I have tried setting all these to 20 seconds:
>