Sadaf_N
December 15, 2015, 10:13am
1
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?
The ngx_http_upstream_module module is used to define groups of servers that can be referenced by the proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass, and grpc_pass directives.
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!