今天在看sso(單點登錄)時,看到了這篇文章,nginx反向代理解決cookie帶不過去的問題,關鍵點是加上 proxy_cookie_path(路徑轉換),下面是正文:
-------------------------------------------------------------------------------------------
1. 如果只是host、端口轉換,則cookie不會丟失。例如:
location /project {
proxy_pass http://127.0.0.1:8080/project;
}
通過瀏覽器訪問http://127.0.0.1/project時,瀏覽器的cookie內有jsessionid。再次訪問時,瀏覽器會發送當前的cookie。
2. 如果路徑也變化了,則需要設置cookie的路徑轉換,nginx.conf的配置如下
location /proxy_path {
proxy_pass http://127.0.0.1:8080/project;
}
通過瀏覽器訪問http://127.0.0.1/proxy_path時,瀏覽器的cookie內沒有jsessionid。再次訪問時,後臺當然無法獲取到cookie了。
詳細看了文檔:http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.161910972.1696054694.1422417685#proxy_cookie_path
加上路徑轉換:proxy_cookie_path /project /proxy_path;
則可以將project的cookie輸出到proxy_path上。正確的配置是:
location /proxy_path {
proxy_pass http://127.0.0.1:8080/project;
proxy_cookie_path /project /proxy_path;
}
————————————————
版權聲明:本文爲CSDN博主「go2shell」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/we_shell/article/details/45153885