好多事不本身去作确实不知道,随便玩一玩就出了好多问题,虽然都不大,但却都是必需要解决的。今天早上遇见的问题就是nginx中proxy_pass到tomcat的session丢失了。nginx
以前也没测试过使用nginx反向代理后登录的状况,结果今天就凑巧了。经调试发现是request请求变成了多个,而且session每次也都不一致,感受就像是每次都在用不一样的浏览器访问,得出结论:确定是session丢失了!浏览器
显而易见的就是问题确定出在了nginx上面,由于以前单独使用tomcat都是没有问题的。tomcat
以前的配置以下:cookie
upstream backend {session
#ip_hash;
server localhost:8080;
}
server {
listen 80;
server_name my;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;测试
proxy_pass http://backend/xyan/;
}代理
修改后以下:调试
upstream backend {server
#ip_hash;
server localhost:8080;
}
server {
listen 80;
server_name my;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;ip
proxy_pass http://backend/xyan/;
proxy_cookie_path /xyan/ /;
proxy_set_header Cookie $http_cookie;
}
其实也就是每次都保留cookie。