Sim, isso acontece porque ip_hash
usa apenas os três primeiros octetos do endereço IP para selecionar o nó de back-end.
Você pode usar a diretiva hash $remote_addr;
para fazer o nginx usar o endereço IP remoto completo para o hash. O lado negativo disso é que, se um nó ficar inativo, todos os mapeamentos de hash serão alterados e as sessões serão perdidas.
Mais informações sobre os métodos de seleção upstream podem ser encontradas em documentação do módulo upstream do nginx .