Nginx + Tomcat + Memcached-Cluster müssen mindestens zwei Aspekte berücksichtigen:
1. Wie erreicht man einen Lastausgleich?
2. Wie implementiert man die Sitzungsreplikation und -synchronisierung?
Dieser Artikel sammelt relevante Materialien aus dem Internet und fasst den Prozess des Aufbaus eines Nginx + Tomcat + Memcached-Clusters unter Windows wie folgt zusammen.
1. Entwicklungsumgebung
1. Nginx-Version: 1.8.0
2. Tomcat-Version: 7.0.55
3. Memcache-Version: 1.4.13
4. Verwenden Sie den Memcache-Session-Manager für die Sitzungsreplikationssynchronisierung.
Betriebssystem: Win7
2. Nginx + Tomcat erreichen Lastausgleich
1. Laden Sie Nginx und Tomcat herunter und installieren Sie es
Weitere Informationen finden Sie unter Herunterladen und installieren Nginx und Tomcat
2. Nginx-Konfiguration
Öffnen Sie die Hauptkonfigurationsdatei von Nginx: D:nginx-1.8.0confnginx.conf, ändern Sie hauptsächlich die IP und den Port des Proxy-Weiterleitungsservers Servergewicht, je höher die Zahl, desto höher ist die Zahl, auf die zugegriffen wird. Je größer die Chance:
upstream local_tomcat { server localhost:18080 weight=1; server localhost:18081 weight=1; } server { listen 80; location / { root html; index index.html index.htm; proxy_pass http://local_tomcat; } }
3. Tomcat + Memcached, um eine Sitzungsreplikation und -synchronisierung zu erreichen
Das Problem der Tomcat-Sitzungsreplikation und -synchronisierung besteht normalerweise darin, memcached oder nginx_upstream_jvm_route zu verwenden, ein Nginx-Erweiterungsmodul, das zur Implementierung der Cookie-basierten Session Sticky-Funktion verwendet wird. Wenn zu viele Tomcats vorhanden sind, wird die Sitzungssynchronisierung nicht empfohlen. Die Synchronisierung von Sitzungen zwischen Servern verbraucht Ressourcen und Umgebungen mit hoher Parallelität können leicht zu Sitzungsstürmen führen. Bitte passen Sie die Sitzungslösung angemessen an Ihre eigene Anwendungssituation an.
Im Folgenden wird die Verwendung von Memcached (Memcache-Session-Manager) zum Verwalten von Sitzungen vorgestellt
1. Laden Sie Memcached herunter und installieren Sie es (ausgelassen)
2 das entsprechende JAR-Paket
Es gibt viele JAR-Pakete, die heruntergeladen werden müssen. Die Version jedes JAR kann nicht verwechselt werden. Ich habe einen vollständigen Satz von JAR-Paketen bereitgestellt, die heruntergeladen werden müssen (wurde getestet und ist verfügbar). ). Wenn Sie herunterladen müssen, klicken Sie bitte Link herunterladen.
3. Konfigurieren Sie die Sitzungsfreigabe
Okay, legen Sie das obige JAR-Paket im Verzeichnis tomcat/lib ab und ändern Sie jede Tomcat-Konfigurationsdatei tomcatconfcontext.xml in
a. Tomcat konfigurieren
Tomcatconfserver.xml ändern Da ich zwei Tomcats vom lokalen Win7-System heruntergeladen habe, muss ich Portkonflikte vermeiden Am Beispiel von Tomcat-Knoten1 werden hauptsächlich die folgenden Punkte geändert: (Knoten2 usw.)
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="18080" protocol="HTTP/1.1" c redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="<span style="color:#FF0000;"><strong>n1:127.0.0.1:11211</strong></span>" sticky="false" sessi lockingMode="uriPattern:/path1|/path2" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>
b. Ändern Sie die Anwendungs-JSP
Ich verwende das Beispielprojekt, das mit Tomcat geliefert wird, und ersetze das folgende JSP direkt durch D:nginx-1.8.0Tomcattomcat-node1webappsexamplesindex.html
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="java.text.SimpleDateFormat"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Tomcat集群测试</title> </head> <body> <% out.print("["+request.getLocalAddr()+":" +request.getLocalPort()+"]" + "<br/>session id:" + session.getId()); %> </body> </html>
4. Testen Sie
Starten Sie Nginx, Memcached und zwei Tomcats, greifen Sie mit dem Browser auf http://localhost/examples/ zu, vergleichen Sie die beiden vom Nginx-Server zurückgegebenen Seiten und finden Sie das Die beiden Ports sind nicht gleich, aber die gleiche Sitzung bedeutet, dass der Nginx + Tomcat + Memcached-Cluster erfolgreich eingerichtet wurde.
Referenzartikel:
1. http://www.tuicool.com/articles/I7ryYf
2. http://blog.csdn.net/liuzhigang1237/article/details/8880752
3. http://www.cnblogs.com/phirothing/archive/2013/12/05/3459814.html
Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne reproduziert werden die Erlaubnis des Bloggers.
Das Obige stellt den Nginx Tomcat Memcached-Cluster vor, einschließlich der relevanten Inhalte. Ich hoffe, dass er Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird.