Dieser Artikel stellt hauptsächlich die Lösung für das Problem der gemeinsamen Nutzung von Nginx-Sitzungen vor. Der Beispielcode im Artikel ist sehr detailliert und hat einen gewissen Referenzwert für das Studium oder die Arbeit aller. Freunde in Not können darauf zurückgreifen. Nginx löst das Problem der Sitzungsfreigabe: 1. Lastenausgleich mit nginx oder haproxy. Für den Lastenausgleich mit nginx können Sie die ip_hash-Konfiguration hinzufügen. Für den Lastenausgleich mit haproxy können Sie die Balance-Source-Konfiguration verwenden, sodass Anfragen mit einer IP an denselben Server gesendet werden. 2. Verwenden Sie die Datenbank, um Sitzungen zu synchronisieren; 3. Verwenden Sie Cookies, um Sitzungsdaten zu synchronisieren, aber die Sicherheit ist schlecht und HTTP-Anfragen müssen Parameter enthalten, was den Bandbreitenverbrauch erhöht. 4.Tomcat konfiguriert die Sitzungsfreigabe; 5. Verwenden Sie einen Sitzungscluster, um Redis zu speichern. 1: Erstellen Sie ein Projekt und starten Sie zwei Tomcats 2: Schreiben Sie einen Servlet-Test Paket com.zn.servlet; importiere javax.servlet.ServletException; importiere javax.servlet.annotation.WebServlet; importiere javax.servlet.http.HttpServlet; importiere javax.servlet.http.HttpServletRequest; importiere javax.servlet.http.HttpServletResponse; importiere java.io.IOException; @WebServlet("/nginxSessionServlet") öffentliche Klasse SessionIPServlet erweitert HttpServlet { geschützt void doPost(HttpServletRequest Anfrage, HttpServletResponse Antwort) wirft ServletException, IOException { System.out.println("Aktueller Anforderungsport: "+request.getLocalPort()); Zeichenfolgenaktion = Anfrage.getParameter("Aktion"); //Daten in der Sitzung speichern if(action.equals("setSession")){ request.getSession().setAttribute("Benutzername","zhangsan"); }sonst wenn(Aktion.equals("getSession")){ response.getWriter().write((String)request.getSession().getAttribute("Benutzername")); } } geschützt void doGet(HttpServletRequest Anfrage, HttpServletResponse Antwort) wirft ServletException, IOException { doPost(Anfrage,Antwort); } } 3. Zugriff auf die Effektanzeige ohne Nginx Access 8080 bzw. 8081 4. Konfigurieren Sie die Datei nginx.conf Upstream meinServer{ ip_hash; Server 127.0.0.1:8080; Server 127.0.0.1:8081; } Server{ hören 81; Servername www.bproject.com; Standort / { Stamm-HTML; Proxy-Passwort http://meinServer; Index Index.html Index.htm; } } 5. Besuchen Sie uns erneut Methode 2: Verwenden Sie Spring-Session + Redis, um die Sitzungsfreigabe zu implementieren 1: Abhängigkeiten importieren <!--Grundkonfiguration der Spring Boot- und Redis-Anwendungsumgebung--> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-redis --> <Abhängigkeit> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </Abhängigkeit> <!--Grundkonfiguration der Spring-Sitzung und der Redis-Anwendungsumgebung. Sie müssen Redis aktivieren, bevor Sie es verwenden können. Andernfalls wird beim Starten von Spring Boot eine Fehlermeldung angezeigt--> <Abhängigkeit> <groupId>org.springframework.session</groupId> <artifactId>Spring-Sitzungsdaten-Redis</artifactId> </Abhängigkeit> 2: Erstellen Sie einen Controller-Test @RestController öffentliche Klasse SessionController { @RequestMapping("/setSession") public String setSession(HttpServletResponse Antwort, HttpServletRequest Anfrage) löst IOException aus { request.getSession().setAttribute("Benutzername","wang"); gebe "Erfolg" zurück; } @RequestMapping("/getSession") öffentliche Zeichenfolge getSession(HttpServletRequest-Anfrage,HttpServletResponse-Antwort){ String-Benutzername = (String) request.getSession().getAttribute("Benutzername"); Benutzernamen zurückgeben; } } 3: Datei application.properties server.port=8082 #server.port=8083 #redis-Konfiguration spring.redis.password: wang2003 4: Beginnen Sie mit dem Testen des Projekts Fazit: Diese Lösung ist einfach zu konfigurieren, die Daten sind sicher und stabil, effizient und weit verbreitet; Hinweis: Nach dem Löschen dieses Datenpakets in Redis kann die Sitzung nicht über die Ports 8082 und 8083 abgerufen werden. Dies bedeutet, dass die Sitzung nicht in der JVM vorhanden ist, sondern an Redis übertragen wird. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Grundlegende Anwendungsbeispiele für Listener in Vue
>>: Implementierung der MySQL-Mehrversions-Parallelitätskontrolle MVCC
Vorwort Was ist Datentypkonvertierung? Der Standa...
Inhaltsverzeichnis 1. Ergebnisse erzielen 2. Impl...
Vorwort Bei der täglichen Entwicklung müssen wir ...
Inhaltsverzeichnis 1. Array.at() 2. Array.copyWit...
Es ist sehr mühsam, eine virtuelle Maschine einzu...
1. Dynamisches Laden von Skripten Mit der wachsen...
<br />Das Lesen ist ein sehr wichtiger Teil ...
Die detaillierten Schritte zur Installation von m...
Mit der GROUP BY-Syntax können die Abfrageergebni...
Inhaltsverzeichnis Vorwort: Was ist ein Wasserfal...
Motivation Aus Lerngründen habe ich einen VPS-Die...
Verwendung des ALTER-Befehls in MySQL zum Bearbei...
Vorwort: Eines Tages baute ich einen MySQL-Dienst...
Vor kurzem habe ich vor, eine Cloud-Festplatte au...
Ich habe bereits zuvor ein Beispiel geschrieben, ...