Load balancing based on hash of the domain

Hi all,

I wish to use load balancing in front of a shared webhosting cluster
with multiple domains.
To make optimal use of resources, it would make sense to do load
balancing based on domain instead of random or based on IP.
I noticed that there is a hash parameter but I’m unable to use
$server_name or $host as a parameter, only $request_uri and
$remote_addr.

Is there any way that I could use $server_name?

In my opinion it makes no sense to randomize all requests for the
different domains and would make sense to load balance based on a hash
of the domain.

Regards,

Bram

On Tuesday 15 December 2015 10:13:35 Bram Verdonck wrote:

What’s the problem with the “hash” directive of upstream block?
Why can’t you use it?

http://nginx.org/r/hash

wbr, Valentin V. Bartenev

Problem is that it will not accept anything besides $remote_addr and
$request_uri.
For example:

upstream loadbalancer {
    hash $server_name consistent:
    #hash $request_uri consistent;
    server 10.0.0.1:8080;
    server 10.0.0.2:8080;
}

Will fail with:

invalid number of arguments in “hash” directive in
/etc/nginx/nginx-loadbalancing.conf:6

On Tue, Dec 15, 2015 at 11:56:43AM +0100, Bram wrote:

Hi there,

Problem is that it will not accept anything besides $remote_addr and
$request_uri.
For example:

upstream loadbalancer {
    hash $server_name consistent:

Use ; not :

    #hash $request_uri consistent;
    server 10.0.0.1:8080;

Line 6 is probably that one, because that is where the “hash” directive
terminates.

    server 10.0.0.2:8080;
}

Will fail with:

invalid number of arguments in “hash” directive in
/etc/nginx/nginx-loadbalancing.conf:6

f

Francis D. [email protected]

On Tuesday 15 December 2015 11:56:43 Bram wrote:

Problem is that it will not accept anything besides $remote_addr and
$request_uri.
For example:

upstream loadbalancer {
    hash $server_name consistent:

There’s a typo: you’ve used a colon at the end of the directive.

wbr, Valentin V. Bartenev

Wow, was struggling with that for a week already.
Can’t believe that was it.

Thank you Valentin and Francis!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs