Maison  >  Article  >  Opération et maintenance  >  Comment résoudre le problème de transfert des cookies perdus par Nginx

Comment résoudre le problème de transfert des cookies perdus par Nginx

WBOY
WBOYavant
2023-05-15 21:10:122997parcourir

1. Opération de cookies perdus

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

Le chemin un est un accès direct, le chemin deux et le chemin trois sont accessibles via nginx

Trois conditions d'accès
①Le navigateur a des cookies, comme le montre la figure ci-dessous :
Chemin d'accès http : //localhost:8080/content/requestAction!XXX.action Attachez JSESSIONID dans les cookies. http://localhost:8080/content/requestAction!XXX.action 附加Cookies中的JSESSIONID。
此cookies中有JSESSIONID,存放着本次访问,后端可以认证的唯一JSESSIONID,如果没有它就会导致无法访问。

Comment résoudre le problème de transfert des cookies perdus par Nginx

②配置了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/requestActionIl y a JSESSIONID dans ce cookie, qui stocke le JSESSIONID unique qui peut être authentifié par le backend pour cette visite. Sans lui, l'accès sera inaccessible.

Comment résoudre le problème des cookies perdus transmis par Nginx

② Configuration nginx configurée Le fichier

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;	   
}

est accessible via les trois chemins ci-dessus. Le chemin un et le chemin deux sont accessibles avec succès, mais l'accès au chemin trois échoue

deux La raison de la perte des cookies

est parce que http. ://localhost:8080/content/requestAction!XXX Le chemin d'accès de .action est /content/requestAction

Il n'y a aucun moyen d'y accéder de la première manière. non utilisé, donc les cookies ne seront pas perdus. Comment résoudre le problème de transfert des cookies perdus par NginxBien que nginx soit utilisé pour accéder de la deuxième manière, car le chemin est le même avant d'être transmis par nginx, donc nginx ne sera pas perdu

La méthode d'accès 3 utilise nginx, et l'accès les chemins sont également différents, provoquant le problème de la perte des cookies lors du transfert nginx. 🎜🎜3. Solution🎜rrreee🎜4. Points faciles à confondre🎜🎜Le chemin d'accès ci-dessus est le chemin dans la case rouge sur l'image ci-dessous, seul celui après la première barre oblique l'est. 🎜🎜🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer