Lösung für das Problem des Sitzungsverlusts bei Nginx

Lösung für das Problem des Sitzungsverlusts bei Nginx

Bei der Verwendung von Nginx als Reverse-Proxy für Tomcat kann es zu Sitzungsverlusten kommen. Bei jeder gesendeten Anforderung ändert sich die JESSIONID, was darauf hinweist, dass die letzte Sitzung verloren geht und eine neue Sitzung erstellt wird.

Erster Fall:

 Server{
    hören Sie 80;
    Servername www.jiahemdata.com www.jiahemdata.cn;
    Zeichensatz UTF-8;
    Standort /{
      Proxy_Redirect aus;
      Proxy-Passwort http://127.0.0.1:8093;
      Proxy_Set_Header Host $host;
      proxy_set_header Referrer $http_referer;
      Proxy_Set_Header X-Real-Ip $Remote_Addr;
      proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
    }
    access_log-Protokolle/tomcat_access.log;
  }

Da das aktuelle Nginx nur auf einem Port lauscht und den Pfad nicht festlegt, tritt das Problem des Sitzungsverlusts im Allgemeinen nicht auf.

Zweiter Fall:

 Server{
    hören Sie 80;
    Servername www.jiahemdata.com www.jiahemdata.cn;
    root /opt/tomcat-jhyx/webapps/jhyx/;
    Zeichensatz UTF-8;
    Standort /{
      Proxy-Passwort http://127.0.0.1:8093/jhyx/;
      Proxy_Set_Header Host $host;
      proxy_set_header Referrer $http_referer;
      Proxy_Set_Header X-Real-Ip $Remote_Addr;
      proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
    }
    access_log-Protokolle/tomcat_access.log;
  }

In diesem Fall wird der Tomcat-Ordner angegeben und nicht nur ein lauschender Port, was zu Änderungen bei jeder Anforderung und zu einem Sitzungsverlust führen würde.

Der dritte Fall:

 Server{
    hören Sie 80;
    Servername www.jiahemdata.com www.jiahemdata.cn;
    root /opt/tomcat-jhyx/webapps/jhyx/;
    Zeichensatz UTF-8;
    Standort /{
      Proxy_Redirect aus;
      Proxy-Passwort http://127.0.0.1:8093/jhyx/;
      proxy_cookie_path /jhyx/ /; //Legen Sie den Cookie-Pfad so fest, dass er sich nicht bei jeder Anforderung ändert.
      Proxy-Cookie-Pfad /jhyx/;
      Proxy_Set_Header Host $host;
      proxy_set_header Referrer $http_referer;
      Proxy_Set_Header X-Real-Ip $Remote_Addr;
      proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
    }
    access_log-Protokolle/tomcat_access.log;
  }

Zu diesem Zeitpunkt stellen Sie fest, dass Ihr Problem immer noch nicht gelöst ist. Zu diesem Zeitpunkt denken Sie: „Ich habe den Cookie-Pfad eindeutig festgelegt, warum funktioniert er nicht?“ Das liegt daran, dass Sie das Cookie nicht gesendet haben, als Sie es angefordert haben.

Der vierte Fall:

 Server{
    hören Sie 80;
    Servername www.jiahemdata.com www.jiahemdata.cn;
    root /opt/tomcat-jhyx/webapps/jhyx/;
    Zeichensatz UTF-8;
    Standort /{
      Proxy_Redirect aus;
      Proxy-Passwort http://127.0.0.1:8093/jhyx/;
      Proxy_Cookie-Pfad /jhyx/ /;
      Proxy-Cookie-Pfad /jhyx/;
      Proxy_Set_Header Host $host;
      proxy_set_header Referrer $http_referer;
      proxy_set_header Cookie $http_cookie; //Cookie-Informationen beim Senden der Anfrage übertragen proxy_set_header X-Real-Ip $remote_addr;
      proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
    }
    access_log-Protokolle/tomcat_access.log;
  }

Ich hoffe, Sie finden im Internet eine passende Lösung.

Dies ist das Ende dieses Artikels zur Lösung des Problems des Nginx-Sitzungsverlusts. Weitere Informationen zum Nginx-Sitzungsverlust finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Springsession Nginx Reverse-Proxy-Integrationsprozess
  • Analyse der Lösung für das Problem der gemeinsamen Nutzung von Nginx-Sitzungen
  • Detaillierte Erläuterung zweier Möglichkeiten zur Implementierung der Sitzungspersistenz im Nginx-Reverse-Proxy
  • Implementierung der Sitzungsverwaltung mit Nginx+Tomcat
  • nginx + redis realisiert Sitzungsfreigabe
  • nginx+tomcat implementiert Lastenausgleich und verwendet Redis-Sitzungsfreigabe
  • Beispiel einer Methode zur gemeinsamen Sitzungskonfiguration in Nginx
  • Nginx-Lastausgleich für gemeinsam genutzte Sitzungen an mehreren Standorten

<<:  Beispiel für eine gespeicherte MySQL-Prozedurmethode zum Zurückgeben mehrerer Werte

>>:  So implementieren Sie die Ajax-Kontrolle gleichzeitiger Anforderungen basierend auf JS

Artikel empfehlen

Implementierung des Imports und Exports von Vue-Element-Admin-Projekten

vue-element-admin importiert Komponentenkapselung...

MySQL implementiert eine Lösung ähnlich der Oracle-Sequenz

MySQL implementiert Oracle-ähnliche Sequenzen Ora...

So fügen Sie einer großen MySQL-Tabelle eine Spalte hinzu

Die Frage wird hier zitiert: https://www.zhihu.co...

Methoden und Schritte zum Bereitstellen mehrerer War-Pakete in Tomcat

1 Hintergrund JDK1.8-u181 und Tomcat8.5.53 wurden...

Prozess des Klassenlademechanismus von Tomcat und Quellcodeanalyse

Inhaltsverzeichnis Vorwort 1. Strukturdiagramm de...

Beispiel für asynchronen Dateiupload in HTML

Code kopieren Der Code lautet wie folgt: <form...

Mobile Frontend-Anpassungslösung (Zusammenfassung)

Ich habe online gesucht und festgestellt, dass in...

Beispiele für minimalistisches Website-Design

Webanwendungsklasse 1. DownFürAlleOderNurIch Mith...

Beispiele für die Verwendung von React Ref

Inhaltsverzeichnis Was ist ref So verwenden Sie r...

Einige Fehler, die JavaScript-Anfänger häufig machen

Inhaltsverzeichnis Vorwort Verwechslung von „unde...