為什么cookie 會(huì)丟失蒸绩?
比如說一個(gè)沒有經(jīng)過代理的地址 : http://127.0.0.1/project cookie_path:/project
如果用nginx代理 那么地址就是 : http://127.0.0.1/proxy_path cookie_path: /proxy_path
根據(jù)瀏覽器同源策略, 要實(shí)現(xiàn)跨域訪問,方法一般有:
1、后端配置允許跨域
?2煞抬、通過nginx等做請求轉(zhuǎn)發(fā).?
nginx做轉(zhuǎn)發(fā)時(shí),如果cookie_path與地址欄上的path不相符瀏覽器就不會(huì)發(fā)送這個(gè)cookie,自然cookie就失效了
proxy_cookie_path 的用法
proxy_cookie_path 的作用是用來改變cookie的路徑
語法: proxy_cookie_path path replacement; path就是你要替換的路徑 replacement 就是要替換的值
詳情可以去nginx 官網(wǎng)看看
解決辦法
1. host许昨、端口轉(zhuǎn)換将塑,cookie不會(huì)丟失, 不需要做 cookie的路徑轉(zhuǎn)換
? ? location /project {
? ? ? ? proxy_pass? http://127.0.0.1:8080/project;
? ? }
2.路徑也變化卜朗,則需要設(shè)置cookie的路徑轉(zhuǎn)換
? ? location /proxy_path {
? ? ? ? proxy_pass? http://127.0.0.1:8080/project;
? ? ? ? proxy_cookie_path? /project /proxy_path;
? ? }
3.直接代理本地端口拔第, 需要設(shè)置cookie的路徑轉(zhuǎn)換
? ? location /proxy_path {
? ? ? ? proxy_pass? http://127.0.0.1:8080/;
? ? ? ? proxy_cookie_path? /project /proxy_path; # project 為你的項(xiàng)目名 也可用變量代替
? ? }
---------------------
作者:isyoungboy
來源:CSDN
原文:https://blog.csdn.net/isyoungboy/article/details/81382193
版權(quán)聲明:本文為博主文章修改而來