本人是nginx小白.今天刚接触到.按照网上的教程搭建了nginx.能正常的使用,但是项目每次登陆就会提示session超时.后来发现是JSESSIONID改变搞的鬼.然后在网上查找解决方法,一开始使用ip_hash的方法. 但是这个方法看网上说并不怎么好.后来又看到用内存数据库memcached来存储session.按照网上的教程安装了memcached,然后在tomcat上配置了.但是还是没有解决这个问题.求大神指教一下.
session 超时和nginx没有关系吧,应该是你项目里面会设置session 详细可以看https://blog.csdn.net/weixin_42920757/article/details/81708691
memcached 可以让多个后端服务器共享一个session,看你自己的需求了
你可以先把项目里面的web.xml中的session时间设置一下
memcached ,redis 都可以作为缓存将session 存入到 缓存中实现会话共享,当然强大的spring 家族也提供了SpringSession 来实现会话共享,其实现也是根据缓存来实现的
如果用了shrio,那就要重写shrio的sessionDao,具体实现,是将产生的session存到memcached中。
这个是因为session没有共享吧,多个服务器的时候niginx可能会把请求转发到不同的服务器,但是只在登陆的那个服务器的时候才会有登陆凭证,到别的服务器的时候就导致没有权限,状态是未登录,主要还是它这个登陆的状态没有实现共享,在每个服务器登陆操作都是一样的才正常