NGINX ip_hash负载均衡不起作用

我已经设置了NGINX来将请求加载到我的web应用程序。 一台前端服务器将请求传递给两台后端服务器。 一切正常。

但是,我一直在使用ip_hash指令来确保用户每次都由同一个服务器提供服务。 这似乎没有工作 – 请求两个后端服务器之间的替代,这是用户会话的问题。

configuration应该是相当简单的,所以我不知道这是哪里错了 – 任何想法赞赏。

upstream webservers { ip_hash; server node1.mysite.com; server node2.mysite.com; server localhost:8080 backup; } server { listen 80; server_name www.mysite.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://webservers; } } 

我find了一个解决scheme。

似乎ip_hash与备份指令不兼容,可能与上游块中的其他指令不兼容。

一旦我删除了备份行,ip_hash就像它应该那样工作。

但是,这似乎很奇怪。 我正在使用最新版本的NGINX-1.6 – 我在最近的文档中找不到任何东西,说ip_hash和备份指令仍然不兼容。