日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Nginx轉發丟失cookie表現形式及解決方案_nginx

作者:想要飛翔的企鵝 ? 更新時間: 2023-03-22 編程語言

一. 丟失Cookies操作

路徑一 :http://localhost:8080/content/requestAction!showMainServiceReqDetail.action
路徑二 :http://localhost/content/requestAction!showMainServiceReqDetail.action
路徑三 :http://localhost/clp/requestAction!showMainServiceReqDetail.action

路徑一是直接訪問,路徑二與路徑三是通過nginx訪問

三個訪問前提條件
①瀏覽器有Cookie,如下圖所示:
通過訪問路徑http://localhost:8080/content/requestAction!XXX.action 附加Cookies中的JSESSIONID。
此cookies中有JSESSIONID,存放著本次訪問,后端可以認證的唯一JSESSIONID,如果沒有它就會導致無法訪問。

在這里插入圖片描述

②配置了nginx配置文件

server {
      listen       80;
      server_name  localhost;
location /clp {
   #proxy_set_header Host $host;
   #proxy_set_header X-Real-IP $remote_addr;
   #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://localhost:8080/content;
   
}

location /content {
   #proxy_set_header Host $host;
   #proxy_set_header X-Real-IP $remote_addr;
   #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://localhost:8080/content; 
}

通過上面三個路徑訪問,路徑一與路徑二可以訪問成功,路徑三訪問失敗

二. 丟失Cookies原因

因為 http://localhost:8080/content/requestAction!XXX.action的訪問路徑為/content/requestAction
方式一進行訪問沒有,沒有使用nginx,所以不會丟失cookies,
方式二訪問雖然使用了nginx,但是因為未經過nginx轉發前路徑相同,所以并不會丟失nginx
方式三訪問使用了nginx,并且訪問路徑也不同導致了nginx轉發丟失cookies的問題。

三. 解決方案

location /clp {
   #proxy_set_header Host $host;
   #proxy_set_header X-Real-IP $remote_addr;
   #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_cookie_path /content /clp;  #這一句就可以解決nginx轉發丟失cookie的問題
   proxy_pass http://localhost:8080/content;	   
}

四. 容易搞不清的點

上面的訪問路徑是下圖紅框中的路徑,只有第一個斜杠后面的才是。

在這里插入圖片描述

原文鏈接:https://blog.csdn.net/PhilsphyPrgram/article/details/127736606

欄目分類
最近更新