weight and balancing in upstream proxy

Frank Liu gfrankliu at gmail.com
Fri Apr 14 05:08:21 UTC 2017


Hi Francis,

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.

Regards,
Frank


On Thu, Apr 13, 2017 at 4:49 PM, Francis Daly <francis at daoine.org> wrote:

> On Wed, Apr 12, 2017 at 02:50:08PM -0700, Frank Liu wrote:
>
> Hi there,
>
> > How does nginx balances traffic to upstream with different weight? If I
> > have 3 servers in upstream, with weight 1, 2, 4, assuming all are
> healthy,
> > will nginx send traffic to server 1, 2, 3, 2, 3, 3, 3 or 1, 2, 2, 3, 3,
> 3,
> > 3?
>
> If you want to know what your current nginx version does, it should not
> be too difficult to test:
>
> One nginx.conf. One http section. One upstream{} listing multiple
> ip:ports. One server{} which proxy_pass:es to that upstream. Multiple
> server{}s, each of which listens on one ip:port, writes to a different
> access_log, and does something like "return 200 ok;".
>
> Then for increasing numbers X, "GET /X" on the main server. Look at
> the individual access log files to see which server handled /1, which
> handled /2, etc. By the time you get to 700, you'll either see that
> there is a reliably repeating pattern, or you'll see that it is probably
> randomish.
>
>
> If you actually care about what pattern is used; or if you want to
> guarantee that the same pattern will be used in future nginx versions;
> then get your preferred code written and use that instead of whatever
> nginx uses.
>
>
> If you want to know what guarantee there is that the behaviour will not
> change in the future: I'd say "none", except that there is a good chance
> that what is written in the documentation will be honoured. Paraphrasing
> that, for the above case: for 7 requests, 1 will go to the first server;
> 2 to the second; and 4 to the third.
>
> > If I have two servers with both weight 50, will nginx will 50 requests
> > to server 1, and then 50 to server 2, or will it calculate the ration to
> be
> > 1:1 and send one after another?
>
> Same answer: it does not seem to difficult to test, if you don't want
> to read the available source.
>
> Good luck with it!
>
>         f
> --
> Francis Daly        francis at daoine.org
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20170413/62920bd9/attachment.html>


More information about the nginx mailing list