背景:开始有一套系统部署在https://a.com,后面因为升级,不能更改原有的域名,所以追加路径改为htts://a.com/v2,表示访问新系统。在登陆的时候除了登陆我们自己的系统,还会登陆第三方系统。
问题:在系统中iframe嵌入了其他系统,在https://a.com中能正常访问,但到https://a.com/v2会被登出
原因:
1、登陆自己系统同时登陆第三方系统时,前端用的绝对路径,此处应该用相对路径。不然访问的地址仍然是https://a.com/smartbi/xxx,而不是https://a.com/v2/smartbi/xxx
2、cookie还是挂在https://a.com下,而不是https://a.com/v2下。
处理方法:添加proxy_cookie_path参数
location /v2/smartbi/ {
proxy_pass http://192.1.1.1:8080/smartbi/;
proxy_cookie_path /smartbi /v2/smartbi;
proxy_set_header X-Forwarded-Proto $scheme;
}