weight and balancing in upstream proxy

B.R. reallfqq-nginx at yahoo.fr
Thu Apr 13 08:09:16 UTC 2017


That is an interesting questions as intuitively, people could think the
former behavior applies.

If I got the source code
<https://trac.nginx.org/nginx/browser/nginx/src/http/ngx_http_upstream_round_robin.c#L507>
right, and as the docs
<https://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream>
state, nginx is following a weighted round-robin
<https://en.wikipedia.org/wiki/Weighted_round_robin> algorithm.
It thus means it will go over the same list of servers everytime a peer
needs to be chosen (ie for every request), and pick the first not having
depleted its weight allocation.

To me, it would use the latter of your proposals.
​Please correct me if I am wrong, so incorrect information does not
propagate too much. :o)​
---
*B. R.*

On Wed, Apr 12, 2017 at 11:50 PM, Frank Liu <gfrankliu at gmail.com> wrote:

> Hi,
>
> 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 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?
>
> Thanks!
> Frank
>
>
> _______________________________________________
> 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/fe4c2ade/attachment-0001.html>


More information about the nginx mailing list