Home >Operation and Maintenance >Nginx >How to solve the problem of Nginx forwarding lost cookies
路径一 :http://localhost:8080/content/requestAction!showMainServiceReqDetail.action 路径二 :http://localhost/content/requestAction!showMainServiceReqDetail.action 路径三 :http://localhost/clp/requestAction!showMainServiceReqDetail.action
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.
②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; }
Accessed through the above three paths, path one and path two can be accessed successfully, path three access fails
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.
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; }
The access path above is the path in the red box in the picture below, only the first slash It's the one behind.
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!