>운영 및 유지보수 >엔진스 >Nginx가 손실된 쿠키를 전달하는 문제를 해결하는 방법

Nginx가 손실된 쿠키를 전달하는 문제를 해결하는 방법

WBOY
WBOY앞으로
2023-05-15 21:10:123059검색

1. 잃어버린 쿠키 작업

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

경로 1은 직접 액세스이고, 경로 2와 경로 3은 nginx를 통해 액세스됩니다.

세 가지 액세스 전제 조건
①아래 그림과 같이 브라우저에 쿠키가 있습니다.
액세스 경로 ​​http: //localhost:8080/content/requestAction!XXX.action 쿠키에 JSESSIONID를 첨부하세요. http://localhost:8080/content/requestAction!XXX.action 附加Cookies中的JSESSIONID。
此cookies中有JSESSIONID,存放着本次访问,后端可以认证的唯一JSESSIONID,如果没有它就会导致无法访问。

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/requestAction이 쿠키에는 이 방문에 대해 백엔드에서 인증할 수 있는 고유한 JSESSIONID를 저장하는 JSESSIONID가 있습니다.

Nginx에서 전달한 쿠키 손실 문제를 해결하는 방법

② 구성된 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;	   
}

파일은 위 3개의 경로를 통해 접근합니다. 1번 경로와 2번 경로는 성공적으로 접근이 가능하지만, 3번 경로에 대한 접근은 실패합니다

2. 쿠키가 손실되는 이유는 http 때문입니다. ://localhost:8080/content/requestAction!XXX .action의 액세스 경로는 /content/requestAction입니다.

nginx가 아닌 경우 첫 번째 방법으로 액세스할 수 있는 방법이 없습니다.

두 번째 방법으로 접근하는데 nginx를 사용하더라도, nginx에 의해 전달되기 전의 경로는 동일하므로 nginx는 잃지 않을 것입니다.

방법 3의 접근은 nginx를 사용하며, 접근 경로는 다음과 같습니다. 또한 nginx 전달에서 쿠키가 손실되는 문제가 발생합니다. Nginx가 손실된 쿠키를 전달하는 문제를 해결하는 방법

3. Solution🎜rrreee🎜4. 헷갈리기 쉬운 점🎜🎜 위의 접속 경로는 아래 사진의 빨간색 박스 안의 경로이며, 첫 번째 슬래시 이후의 경로만 해당됩니다. 🎜🎜🎜🎜

위 내용은 Nginx가 손실된 쿠키를 전달하는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제