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

Der Unterschied und die Verwendung von Datum/Uhrzeit und Zeitstempel in MySQL

1. Wie wird die aktuelle Uhrzeit in MySQL dargest...

So verbinden Sie Navicat mit der Docker-Datenbank auf dem Server

Starten Sie den MySQL-Container in Docekr Verwend...

Zusammenfassung der Verwendung spezieller Operatoren in MySql

Vorwort Es gibt vier Arten von Operatoren in MySQ...

Eine kurze Diskussion über die MySQL-Zeilenanzahl

Wir alle kennen die MySQL-Funktion count(), mit d...

Drei Möglichkeiten zur Implementierung virtueller Hosts unter Linux7

1. Gleiche IP-Adresse, unterschiedliche Portnumme...

Analyse verschiedener Fehler bei Sortierregeln für MySQL-Tabellen

Der folgende Fehler wird gemeldet, wenn MySQL meh...

Vue + Element zur dynamischen Anzeige von Hintergrunddaten zu Optionen

brauchen: Implementieren Sie die dynamische Anzei...