nginx反向代理(proxy_pass)tomcat导致session失效的问题解决
来源:互联网 发布:corel draw mac 编辑:程序博客网 时间:2024/04/19 08:40
学习nginx http://www.nginx.cn/nginx-how-to
Nginx反向代理tomcat,很是方便,但是也有些细节的问题需要注意;今天遇到了这样一个问题,tomcat中路径“host/web1”,nginx中直接“host/”代理,这时候session就无法正常进行了。
问题描述: 登录后. 跳转http://127.0.0.1:8080/api/index.do 可以正常访问
nginx 反向代理 proxy_pass http:
//192
.168.1.12:8080
/api/ 登录之后跳转 http://api.tomas.com/index.do 没有带过去cookie 导致拦截跳转登录页
原因分析: 关键在于tomcat 中的应用context 路径是 /api , 而nginx代理后访问 context 路径是 / , JSESSIONID 的值从浏览器经过反向代理到达tomcat时, 由于cookie时内外路径不一致, 使tomcat每次重写设置 JSESSIONID 的值,导致session丢失现象.
server{
而后检查是由于cookies path问题导致,阅读官方资料中显示proxy_cookie_path,遂调整
server{
listen 80;
server_name api.tommas.com;
location / {
proxy_pass http://192.168.1.12:8080/api/;
#proxy_pass 代理 (包含项目名)的url时 注意cookie的Path
proxy_cookie_path /api/ /;
proxy_set_header Host $host;
proxy_set_header Remote_Addr $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
#proxy反向代理header 有可能经过了多级nginx代理 想取原始IP(多个取第一个是原始IP 其余的为代理ip)
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
测试 解决问题。
参考资料: http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.161910972.1696054694.1422417685#proxy_cookie_path
nginx 配置写法方式二:
则可以将project的cookie输出到proxy_path上。正确的配置是:
location /proxy_path {proxy_pass http://127.0.0.1:8080/project;
proxy_cookie_path /project /proxy_path;
}
- nginx反向代理(proxy_pass)tomcat导致session失效的问题解决
- nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决
- nginx使用proxy_pass反向代理时,session丢失的问题
- nginx proxy_pass 反向代理
- nginx proxy_pass 反向代理的用法
- nginx反向代理tomcat会出现session失效问题
- nginx使用proxy_pass反向代理时cookie丢失问题解决方案
- 解决nginx使用proxy_pass反向代理时,session丢失的问题
- nginx做反向代理proxy_pass,proxy_redirect的使用
- Nginx服务器的反向代理proxy_pass配置方法讲解
- Nginx服务器的反向代理proxy_pass配置方法讲解
- Nginx服务器的反向代理proxy_pass配置方法讲解
- nginx反向代理proxy_pass不配置URI引起的思考
- nginx反向代理之proxy_pass指令
- 解决nginx中proxy_pass到tomcat的session丢失问题
- 解决nginx中proxy_pass到tomcat的session丢失问题
- 解决nginx中proxy_pass到tomcat的session丢失问题
- nginx反向代理,实现地址栏域名不变,session不失效
- 石板水电站领导来公司考察
- android滚动通知的效果
- 布局中的shape
- java spring mvc 下载压缩包简洁代码,读取时候不分段读取。
- 内联函数
- nginx反向代理(proxy_pass)tomcat导致session失效的问题解决
- 选中文字弹出对话框
- LightOJ-1117 Helping Cicada(容斥定理)
- Java读文件到Sting方法优化
- Unity3D游戏开发之SQLite让数据库开发更简单
- LeetCode 169. Majority Element 题解(C++)
- 第一篇博客
- 标准头文件结构
- 用JavaScript模拟Java的set