目前nginx.conf的部分配置如下
访问接口,几次访问后发现, 如果连续nginx导向同一个tomcat则sessionId是同一个,但是如果中途导向其他的tomcat,即使再导向之前的tomcat,sessionId也已经发生变化了
,session判断的机制是,在客户端的cookie存一个jsessionid,当浏览器访问的时候,会从cookie中判断是否是同一用户,如果不是统一用户会存入jsessionid。
目前解决的方式有
①直接服务器为无状态服务器,不用session
②自定义session,即在应用层实现session,这样比较方便,且要自己选择session存储,比如选用分布式缓存redis存储等
③使用memcached-session-filter
④使用tomcat-session-manager 这是网上redis的实现https://github.com/jcoleman/tomcat-redis-session-manager
tips:以上也可以作为tomcat多应用session共享的方案