2

Is the Nginx's load balancing policy customizable in any way? Having two sites A and B I want 20% of all the requests to go to A and the rest to B. Is that possible/feasible? Is there a better solution out there for this task?

Thanks,

Alex

1 Answer 1

5

In your upstream block you can adjust the weights like this:

upstream upstream_server {
            server 192.168.1.11:80 weight=2;
            server 192.168.1.12:80 weight=8;
}

For every 10 requests, it will send 2 to 1.11, and 8 to 1.12, about an 20%/80% divide.

There are a bunch of options like to set an idle spare, and load balancing by source IP address. See the docs for more details about the upstream parameter.

2
  • Is this on the same physical machine or two separate. If this is on one machine does this matter, because i assume that there is only one instance of nginx running. Apr 2, 2010 at 10:40
  • In our setup (+ and what I'm recommending here), .11 & .12 would be 2 separate machines. For us, nginx uses so little CPU, usually one of the machines in our upstream cluster is the nginx front-end itself. (backends are on ports other than :80) But I could conceivably see a scenario where you cannot tolerate any downtime, and can reload code by restarting the server on alternating ports on the same machine.
    – Jason
    Apr 2, 2010 at 12:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .