目前关于nginx做proxy的会话保持功能实现有2种方法:

一、ip_hash
  可以实现回话保持,但是需要加max_fails=0;防止当机后服务不能跳转的问题。
  upstream cluster {
  ip_hash;
  server xxx.xxx.xxx.xxx:80 max_fails=0;
  }

 经过实地测试,发现max_fails=0,不用添加。这个设置的意思是关闭了nginx的健康检查。在不关闭的情况下,也就是默认取1时,某节点宕机,服务自动跳转到其他节点,完全没有影响。

二、第三方模块 nginx_upstream_jvm_route
    1.For resin
    upstream backend {
        server 192.168.0.100 srun_id=a;
        server 192.168.0.101 srun_id=b;
        server 192.168.0.102 srun_id=c;
        server 192.168.0.103 srun_id=d;
        jvm_route $cookie_JSESSIONID|sessionid;
    }
    2.For tomcat
    upstream backend {
        server 192.168.0.100 srun_id=a;
        server 192.168.0.101 srun_id=b;
        server 192.168.0.102 srun_id=c;
        server 192.168.0.103 srun_id=d;
        jvm_route $cookie_JSESSIONID|sessionid reverse;
    }

 第二种方法从网上搜索文档很多。