Newbie question on ip_hash
Maxim Dounin
mdounin at mdounin.ru
Wed Feb 6 16:47:22 UTC 2013
Hello!
On Tue, Feb 05, 2013 at 10:38:35AM -0500, WBrown at e1b.org wrote:
> Why does ip_hash only use the first 3 octects of the IP address?
>
> The reason I ask is that we run we servers for a number of schools. Each
> school is going the be their own subnet, ranging from a /24 to a /20 in
> size. Since ip_hash will lump everyone from a /24 in the same hash, it
> will direct them to the same server, correct?
Yes.
The ip_hash balancing was designed to work with internet services,
and use of /24 networks allows it to keep users from migrating
between backend servers as they get new IP address on
reconnect/reboot (typically from the same /24 network, at least at
the time ip_hash was introduced) while still providing good
distribution between backend servers. This probably isn't very
useful nowadays, but this is how it works.
> If I am correct above, is there any way to create persistent connections
> based on the full IPv4 address?
There is a number of 3rd party modules available which do hash
calculation based on arbitrary variables, and these may be used if
you need a hash based on full client's IPv4 address (there is
$remote_addr variable).
--
Maxim Dounin
http://nginx.com/support.html
More information about the nginx
mailing list