Heim > Backend-Entwicklung > PHP-Tutorial > Nginx Tomcat Memcached-Cluster

Nginx Tomcat Memcached-Cluster

WBOY
Freigeben: 2016-07-30 13:30:56
Original
1019 Leute haben es durchsucht


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; 
        }
    }
Nach dem Login kopieren

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 .. .< /context>Fügen Sie den folgenden Code zwischen den Tags hinzu:

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">
Nach dem Login kopieren

    <Connector port="18080" protocol="HTTP/1.1"
               c
               redirectPort="8443" />
Nach dem Login kopieren

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Nach dem Login kopieren

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
Nach dem Login kopieren
Ändern Sie tomcatconfcontext.xml , Fügen Sie den folgenden Code zwischen den Tags ...
	<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"/>
Nach dem Login kopieren
(Beachten Sie, dass memecachedNodes in den beiden Tomcat-Konfigurationen alle n1:* sind)

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>
Nach dem Login kopieren

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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage