解決nginx使用proxy_pass反向代理時,session cookie丟失的問題

今天在看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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章