nginx之proxy_pass的session丢失

来源:互联网 发布:21端口查看 编辑:程序博客网 时间:2024/04/19 01:07

nginx下基于多域名同ip同端口的配置中tomcatsession丢失

 

 

http://www.yourdomain.com对应的部署应用中为http://ip:port/contextPath具体的nginx配置如下:

server { 
 listen          
80
  server_name 
www.yourdomain.com
  location / { 
  add_header From
www.yourdomain.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_name 
www.yourdomain.com
  location / { 
  add_header From
www.yourdomain.com;
  proxy_pass
http://localhost:9008/linkrmb/
  proxy_cookie_path /contextPath/ /;
 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 /contextPath/  /;

0 0
原创粉丝点击