今天在测试Nginx作为反向代理到Tomcat应用时,session丢失的问题。经过一系列查看官方文档和测试,发现如下:
1、如果只是host、端口转换,则session不会丢失。例如:
location /t {
proxy_pass http://127.0.0.1:8080/t;
}
1
2
3
通过浏览器访问http://127.0.0.1/testwx时,浏览器的cookie内有jsessionid。再次访问时,浏览器会发送当前的cookie。
1
2、如果路径也变化了,则需要设置cookie的路径转换,nginx.conf的配置如下
location /t {
proxy_pass http://127.0.0.1:8080/w;
}
1
2
3
通过浏览器访问http://127.0.0.1/t时,浏览器的cookie内没有jsessionid。再次访问时,后台当然无法获取到cookie了。
详细看了文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.161910972.1696054694.1422417685#proxy_cookie_path
加上路径转换:proxy_cookie_path /w /t;则可以将w的cookie输出到t上,Tomcat的session正常了。正确的配置是:
location /t {
proxy_pass http://127.0.0.1:8080/wx;
proxy_cookie_path /w /t;#这里的路径要注意对应关系
}
如果需要更复杂的路径转换可用通配符的方式进行转换,详情要查看http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.161910972.1696054694.1422417685#proxy_cookie_path了。
分享到:
相关推荐
主要介绍了Nginx session丢失问题处理解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的...
何为跨域跨域session/cookie? 也就是第三方session/cookie。...我的问题 在开发讯息在线产品(http://iap.pgia.net)测试各种浏览器的兼容性时,发现IE浏览器(v7\8)都无法登录(总是提示验证码不匹配
关于Basic Authorization 在HTTP中,Basic Authorization... ...例如,提供的用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。...
一、ip_hash: ip_hash使用源地址哈希算法,将同一客户端的请求总是发往同一个后端服务器,除非该服务器不可用。 ip_hash语法: ... 当后端服务器宕机后,session会丢失; 来自同一局域网的客户端会被转发到
主要介绍了前后端分离 vue+springboot 跨域 session+cookie失效问题的解决方法,解决过程也很简单 ,需要的朋友可以参考下
tomcat+nginx+redis实现均衡负载、session共享(二) 今天我们接着说上次还没完成session共享的部分,还没看过上一篇的朋友可以先看下上次内容,http://www.cnblogs.com/zhrxidian/p/5432886.html。 1.redis简介及...
缓存和Session:注解redis缓存数据,Spring-session和redis实现分布式session同步,重启服务会话不丢失。 数据同步:基于redis的分布式锁。 Web安全:实现XSS过滤和CSR过滤。 多系统交互:Dubbo,ActiveMQ多系统交互...
session跨域共享及企业级单点登录解决方案实战 分布式事务解决方案实战 高并发下的服务降级、限流实战 基于分布式架构下分布式锁的解决方案实战 分布式架构实现分布式定时调度 分布式架构-中间件 分布式消息...
【集合】HashMap在并发场景下的问题和解决方案 67 多线程put后可能导致get死循环 67 多线程put的时候可能导致元素丢失 68 解决方案 68 【集合】ConcurrentHashMap的get(),put(),又是如何实现的?ConcurrentHashMap...
shiro实现redis分布式session同步,重启服务会话不丢失。7、多系统交互:Dubbo,ActiveMQ多系统交互,ftp/sftp/fastdafs发送文件到独立服务器,使文件服务分离。8、前后端分离:没有权限的文件只用nginx代理即可。9...