weight and balancing in upstream proxy

Francis Daly francis at daoine.org
Fri Apr 14 07:35:43 UTC 2017

On Thu, Apr 13, 2017 at 10:08:21PM -0700, Frank Liu wrote:

Hi there,

> Thanks for confirming that there is no document, and any results observed
> through testing or reviewing code will not be guaranteed. I guess it is
> purposely undocumented so that people won't rely on one behavior and we are
> free to change.

The guarantee is written in the licence, available at

Something similar is true for every aspect of every piece of behaviour
of every piece of software.

If there is specific behaviour you want, you always have the option
of finding someone who will commit to providing and preserving that
behaviour in future versions of the nginx that you use.

Or, if you know through testing and code review that the behaviour of
1.10.0 is exactly what you want, you always have the option of continuing
to use that version. (Compiled with your version of a compiler and
support libraries, and running with your version of an operating system
and runtime libraries.)

I suspect that the upstream round-robin implementation will not change in
the future without good reason, just like I expect that HTTP/1.0 support
will not change without good reason. But if things do change, and if
my comfort depends on the old behaviour persisting, I have the freedom
to ensure that the old behaviour does persist on my systems.

So I'd say that if it matters, you can see what the current code does,
and base your system on that.

Note that if your system relies on all upstreams remaining always
available, your system is probably fragile -- if you need a specific
pattern of access, and one of your upstreams is unavailable when nginx
wants it, the current nginx "recovery" behaviour may or may not be what
you want. And *that* behaviour (I think) depends on timings of incoming
requests, so may not be fully under your control anyway.

Good luck with it,

Francis Daly        francis at daoine.org

More information about the nginx mailing list