Nginx 通过二级目录反代多个不同站点时,可能会因为Cookie相互冲突而出现登录丢失等情况。

Nginx 提供了 proxy_cookie_path 和 proxy_cookie_domain 来解决 cookie 异常的问题。

proxy_cookie_domain

作用是用来改变cookie的生效路径,使cookie限制在指定的目录下面。

location /proxy1 {
  proxy_pass http://127.0.0.1:8080/;
  proxy_cookie_path / /proxy1;
}

location /proxy2 {
  proxy_pass http://127.0.0.1:8081/path/;
  proxy_cookie_path /path /proxy2;
}

proxy_cookie_domain

作用是转换response的set-cookie header中的domain选项,由后端设置的域名domain转换成你的域名replacement,来保证cookie的顺利传递并写入到当前页面中。

该设置只针对被代理网站设置了Cookies域名限制的网站。如果未限制域名,一般不需要对此进行设置。

location / {
   proxy_pass https://b.test.com;
   proxy_cookie_domain b.test.com  a.test.com;
}


原文链接地址:http://blog.exsvc.cn/article/nginx-reverse-proxy-cookies.html
转载请注明:转载自 易科博客 ,谢谢!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注