好多事不自己去做确实不知道,随便玩一玩就出了好多问题,虽然都不大,但却都是必须要解决的。今天早上碰见的问题就是nginx中proxy_pass到tomcat的session丢失了。
之前也没测试过使用nginx反向代理后登陆的情况,结果今天就凑巧了。经调试发现是request请求变成了多个,并且session每次也都不一致,感觉就像是每次都在用不同的浏览器访问,得出结论:肯定是session丢失了!
显而易见的就是问题肯定出在了nginx上面,因为之前单独使用tomcat都是没有问题的。
之前的配置如下:
upstream backend {
#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 {
#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/;
proxy_cookie_path /xyan/ /;
proxy_set_header Cookie $http_cookie;
}
其实也就是每次都保留cookie。