nginx之proxy_pass的session丢失
背景:nginx下基于多域名同ip同端口的配置中tomcat中session丢失
描述:
http://www.linkrmb.com 对应的部署应用中为http://ip:9008/linkrmb具体的nginx配置如下:
server {
listen 80;
server_namewww.linkrmb.com;
location / {
add_header From www.linkrmb.com;
proxy_pass http://localhost:9008/linkrmb/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;
client_max_body_size 1000m;
}
}
此时由于cookie存储的位置不是基于/那么在第二次访问的时候会从新创建session,因此session中的信息丢失
解决方式:
修改cookie的路径
server {
listen 80;
server_namewww.linkrmb.com;
location / {
add_header From www.linkrmb.com;
proxy_pass http://localhost:9008/linkrmb/;
proxy_cookie_path /linkrmb/ /;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;
client_max_body_size 1000m;
}
}
重点为:proxy_cookie_path /linkrmb/ /;
页:
[1]