Nginx+Tomcat7+Memcached-Cluster-Sitzungsfreigabe
Prinzip:
Verwendet hauptsächlich das Open-Source-Tomcat-Plug-in „memcached-session-manager“ (im Folgenden als msm bezeichnet), um das Original von Tomcat zu ändern Der Sitzungsspeichermechanismus wird im verteilten Cache-Memcache abgelegt, wodurch die gemeinsame Nutzung der Sitzung realisiert wird.
Herunterladen
1. Laden Sie nginx herunter
2 ersetzt. jar-Paket, memcached-session-manager-tc6)
3. Laden Sie memcached herunter
Die oben genannten Dateien sind im komprimierten Paket enthalten.
Erklärung
1 Die beiden Kater sind kopiert, daher sind sie im Grunde gleich, daher werde ich hier nicht auf Details eingehen.
2. Apache-Tomcat-7.0.57-2Zugriffsport 8081
3. Apache-Tomcat-7.0.57-3Zugriffsport8082
4. Webapps unter 8081 - >In test.jsp in ROOT ist ein Wert in der Sitzung platziert und der Schlüssel ist Name. Im Gegenteil, er wird nur unter 8082 erhalten. Wenn dieser Wert unter 8082 erhalten werden kann, ist die Konfiguration der Sitzungsfreigabe erfolgreich. (Für diesen Schritt ist keine Konfiguration des Nginx-Clusters erforderlich)
Konfiguration
1. Legen Sie das folgende JAR-Paket in das Tomcat-Lib-Verzeichnis
2. context.xml-Datei Fügen Sie die folgende Konfiguration zu
Die memcachedNodes hinzu, um den memcachednode , mehrere Knoten können durch “, getrennt werden, wie zum Beispiel :n1:localhost: 11211,n2:localhost:11212
Die Beschreibung des Manager-Label-Attributs ist unten aufgeführt, Sie können es verstehen. 3. Tomcat -> Webapps Ich werde hier nicht viel sagen, es ist sehr einfach. 4. Nginx ist vollständig in nginx.conf konfiguriert. Es ist sehr einfach. Zugriff starten1. Starten Sie Nginx. Die Festplatte, auf der Nginx abgelegt wird, können Sie selbst bestimmen. 3. Besuchen Sie http://localhost/test.jspMehrmals nacheinander aktualisierenWenn sowohl 8081 als auch 8082 die Wörter Nginx+Tomcat ausdrucken können ... usw., herzlichen Glückwunsch, die Konfiguration ist erfolgreich. Manager-Tag-Attributbeschreibung1.className Erforderlicher Klassenname: de.javakaffee.web.msm.MemcachedBackupSessionManager2.memcachedNodes
erforderlich >session Der Modus ist Sticky oder Non-Sticky, der Standardwert ist true
, erforderlich, wenn mehrere Tomcat
vorhanden sind Verwenden Sie nicht-klebrige 4.lockingMode OptionalNur nicht-klebrigeSitzung Nur verwendet wird, ist der Standardwert nonenone:
Niemals sperrenSitzung alle: Sitzungwird gesperrt, bis die Anfrage endetAuto: Für schreibgeschützte Anfragen
Sitzung wird nicht gesperrt. Wenn es sich um eine nicht schreibgeschützte Anfrage handelt, wird Sitzung gesperrt
uriPattern:< ; regexp>: entspricht der Anfrage
uri und der Abfragezeichenfolge unter Verwendung regulärer Ausdrücke. Nur diejenigen, die übereinstimmen, werden gesperrt. 5.requestUriIgnorePattern OptionalDieses Attribut kann nicht geändert werden
Sitzung. Wenn auf statische Dateien wie CSS, Javascript, Bilder usw. mit demselben
und derselben Anwendung Kontext Vorausgesetzt, diese Anfragen werden auch über memcached-session-manager
durchlaufen. Diese Anfragen ändern sich jedoch selten innerhalb einer http-Sitzung, sodass sie keine eine Sitzung auslösen müssen Sicherung. Damit diese statischen Dateien keine Session-Sicherung auslösen müssen, können Sie diese Attributdefinition verwenden. Dieses Attribut muss der regulären Spezifikation javaregex entsprechen. Zum Beispiel: ".*.(png|gif|jpg|css|js)$" 6.sessionBackupAsync OptionalGibt an, ob die Sitzung asynchron im Memcached gespeichert werden soll in. Wenn auf true gesetzt, funktioniert die Einstellung backupThreadCount, wenn sie auf false , die durch sessionBackupTimeout festgelegte Ablaufzeit funktioniert. 7.backupThreadCount Optional wird zum asynchronen Speichern verwendetSitzung, (wenn sessionBackupAsync="true"). Standardwert
ist die Anzahl der Kerne der CPU. Optional Backup festlegenSitzung Die verwendete Zeit. Wenn der Vorgang diese Zeit überschreitet, schlägt das Speichern fehl. Dieses Attribut funktioniert nur, wenn sessionBackupAsync="false". Standard100ms Erweitern Einstellung der Sitzungsgültigkeitszeit Die Einstellung der Sitzungsgültigkeitszeit ist die gleiche wie bei gewöhnlichen Webprogrammen. Fügen Sie den folgenden Code zu web.xml hinzu: session-config> session-timeout>10 session-timeout> session-config >Der rote Teil ist das Timeout in Minuten. Hinweis: Mehrere Webprogramme teilen sich die Sitzung im Memcached. Abhängig von der Timeout-Konfiguration treten die folgenden Situationen auf: 1. Sitzungsgültigkeitszeit in mehreren Webprogrammen Die Einstellungen sind konsistent und die Ablaufzeit ist konsistent. 2 Wenn die Einstellungen für die Sitzungsgültigkeitszeit in mehreren Webprogrammen inkonsistent sind, hat die kürzeste der eingestellten Zeiten Vorrang. Sitzungsüberwachung Fügen Sie den folgenden Code in web.xml hinzu:
Download-Adresse: http://download.csdn.net/ Detail /kevon_sun/8371071
Das Obige stellt die gemeinsame Nutzung von Nginx Tomcat7 (Tomcat6) Memcached-Clustern vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.
<listener>
<listener-class>
listener.SessionListener (根据自己的包名进行配置)
</listener-class>
</listener>
Beispielcode: public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
System.out.println("--------------------------create");
HttpSession session = event.getSession();
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
System.out.println("--------------------------destroy");
}
}