Heim >Betrieb und Instandhaltung >Nginx >So lösen Sie das Problem, dass Nginx verlorene Cookies weiterleitet

So lösen Sie das Problem, dass Nginx verlorene Cookies weiterleitet

WBOY
WBOYnach vorne
2023-05-15 21:10:123059Durchsuche

1. Vorgang „Verlorene Cookies“

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

Pfad eins ist Direktzugriff, Pfad zwei und Pfad drei werden über Nginx aufgerufen

Drei Zugriffsvoraussetzungen
①Der Browser verfügt über Cookies, wie in der Abbildung unten dargestellt:
Zugriffspfad http: //localhost:8080/content/requestAction!XXX.action JSESSIONID in Cookies anhängen. http://localhost:8080/content/requestAction!XXX.action 附加Cookies中的JSESSIONID。
此cookies中有JSESSIONID,存放着本次访问,后端可以认证的唯一JSESSIONID,如果没有它就会导致无法访问。

So lösen Sie das Problem, dass Nginx verlorene Cookies weiterleitet

②配置了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/requestActionIn diesem Cookie befindet sich die JSESSIONID, die die eindeutige JSESSIONID speichert, die vom Backend für diesen Besuch authentifiziert werden kann. Ohne sie ist der Zugriff nicht möglich.

So lösen Sie das Problem verlorener Cookies, die von Nginx weitergeleitet werden

② Konfigurierte Nginx-Konfiguration Auf die Datei

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

kann über die oben genannten drei Pfade zugegriffen werden, aber der Zugriff auf Pfad drei schlägt fehl

zwei. Der Grund für den Verlust von Cookies

://localhost:8080/content/requestAction!XXX Der Zugriffspfad von .action ist /content/requestAction

Es gibt keine Möglichkeit, auf Nginx zuzugreifen Nicht verwendet, sodass Cookies nicht verloren gehen. So lösen Sie das Problem, dass Nginx verlorene Cookies weiterleitetObwohl Nginx für den Zugriff auf die zweite Methode verwendet wird, da der Pfad vor der Weiterleitung durch Nginx derselbe ist, geht Nginx nicht verloren.

Methode 3 verwendet Nginx und den Zugriff Auch die Pfade sind unterschiedlich, was zu dem Problem führt, dass Cookies bei der Nginx-Weiterleitung verloren gehen. 🎜🎜3. Lösung🎜rrree🎜4. Punkte, die leicht zu verwechseln sind🎜🎜Der Zugriffspfad oben ist der Pfad im roten Feld im Bild unten, nur der nach dem ersten Schrägstrich. 🎜🎜🎜🎜

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass Nginx verlorene Cookies weiterleitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen