Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menyelesaikan masalah Nginx memajukan kuki yang hilang

Bagaimana untuk menyelesaikan masalah Nginx memajukan kuki yang hilang

WBOY
WBOYke hadapan
2023-05-15 21:10:123016semak imbas

1. Operasi Kuki Hilang

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

Laluan satu ialah akses terus, laluan dua dan tiga ialah akses melalui nginx

Tiga prasyarat akses
①Pelayar mempunyai kuki, Seperti yang ditunjukkan dalam rajah di bawah:
Tambahkan JSESSIONID dalam Kuki dengan mengakses laluan http://localhost:8080/content/requestAction!XXX.action.
Terdapat JSESSIONID dalam kuki ini, yang menyimpan JSESSIONID unik yang boleh disahkan oleh bahagian belakang untuk lawatan ini, akses tidak akan dapat diakses.

Bagaimana untuk menyelesaikan masalah Nginx memajukan kuki yang hilang

②Fail konfigurasi nginx dikonfigurasikan

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

Diakses melalui tiga laluan di atas, laluan satu dan laluan dua boleh diakses dengan jayanya, akses laluan tiga gagal

2. Sebab kehilangan kuki

Kerana laluan akses http://localhost:8080/content/requestAction!XXX.action ialah /content/requestAction,
kaedah 1 tidak mengaksesnya, dan nginx tidak digunakan, jadi kuki tidak akan akan hilang, kaedah
Walaupun nginx digunakan untuk lawatan kedua, laluannya adalah sama sebelum dimajukan oleh nginx, jadi nginx tidak akan hilang
Lawatan ketiga menggunakan nginx, dan laluan akses juga berbeza, menyebabkan masalah kuki hilang apabila dimajukan oleh nginx.

3. Penyelesaian

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

4 Mata yang mudah dikelirukan

Laluan akses di atas adalah laluan dalam kotak merah dalam gambar di bawah, hanya garisan pertama Ia adalah. yang di belakang.

Bagaimana untuk menyelesaikan masalah Nginx memajukan kuki yang hilang

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah Nginx memajukan kuki yang hilang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam