How to solve the problem of Nginx forwarding lost cookies

WBOY
Release: 2023-05-15 21:10:12
forward
3015 people have browsed it

1. Lost Cookies operation

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

Path one is direct access, path two and path three are accessed through nginx

Three access prerequisites
①The browser has cookies, As shown in the figure below:
By accessing the pathhttp://localhost:8080/content/requestAction!XXX.action Attach the JSESSIONID in Cookies.
There is JSESSIONID in this cookie, which stores the unique JSESSIONID that can be authenticated by the backend for this visit. Without it, access will be inaccessible.

How to solve the problem of Nginx forwarding lost cookies

②The nginx configuration file is configured

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; 
}
Copy after login

Accessed through the above three paths, path one and path two can be accessed successfully, path three access fails

2. The reason for losing cookies

Because the access path of http://localhost:8080/content/requestAction!XXX.action is /content/requestAction,
No nginx is used for access in method one, so cookies will not be lost.
Although nginx is used for access in method two, nginx will not be lost because the path is the same before being forwarded by nginx
Method 3 access uses nginx, and the access paths are also different, which leads to the problem of lost cookies forwarded by nginx.

3. Solution

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;	   
}
Copy after login

4. Points that are easily confused

The access path above is the path in the red box in the picture below, only the first slash It's the one behind.

How to solve the problem of Nginx forwarding lost cookies

The above is the detailed content of How to solve the problem of Nginx forwarding lost cookies. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template