前端老生

解决iframe、frame和框架丢失或获取不到session、cookies问题

原因: nginx反向代理丢失cookie的问题


1. 只有host、端口变化,则cookie不会丢失。
如:

location /blog {
    proxy_pass http://127.0.0.1:9001/blog;
}


2. 如果路径也变化了,则需要设置cookie的路径转换
如:

location /proxy_path {
    proxy_pass http://127.0.0.1:9001/;
    proxy_set_header X-real-ip $remote_addr;
}


3. 通过浏览器访问http://127.0.0.1/proxy_path时,浏览器没有该路径的cookie。再次转发也就没有cookie,所以失败。
加上路径转换:proxy_cookie_path /blog /proxy_path; 则可以将project的cookie输出到proxy_path上。
如:

location /proxy_path {
    proxy_pass http://127.0.0.1:9001/;
    proxy_set_header X-real-ip $remote_addr;
    proxy_cookie_path / /proxy_path;
}