Configuration tuning for best performance with upstream nodes down

denis denisb+gmane at gmail.com
Wed Apr 9 11:58:06 MSD 2008


Hi,

I've had some experience with Nginx working as a reverse proxy
loadbalancer only for multiple apache backends. For most of the time
performance was excellent.

However during a few situations where backends would go down and stay
down for a longer period of time it would seem Nginx was not behaving
ideally. It would give lots of error messages about upstream timeouts
(expected), but it would take a little long time before switching to the
next upstream (imho anything that is noticeable by the user is a bit too
long?).

http://wiki.codemongers.com/NginxHttpUpstreamModule#server
Is a bit confusing to me; fail_timeout and max_fails seem to be the
numbers to work with, but as it appears, tuning fail_timeout down would
also mean that downed backends would be tried again faster?!

Let us say the scenario has backends that normally respond very quickly
(<2secs), how would one best tune the appropriate parameters?


An alternate way of doing this which I actually considered at one point,
would be to automate checks (better checks than pure network connections
in this case) and then removing the nodes from the pools in config, and
forcing an nginx config refresh..

Hope someone can give examples of config that minimizes worsening the
user experience in fail situations, or otherwise enlighten me ;)

Regards
--
Denis







More information about the nginx mailing list