sunage001 发表于 2016-12-26 08:47:06

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]
查看完整版本: nginx之proxy_pass的session丢失