Nginx ip_hash does not load-balance connections to meteor backend
Solution 1:
Yes, this happens because ip_hash
uses only the first three octets of the IP address for selecting the backend node.
You can use hash $remote_addr;
directive to make nginx use the complete remote IP address for hash. Downside of this is that if a node goes down, all hash mappings change, and sessions will be lost.
More information on upstream selection methods can be found at nginx upstream module documentation.