Heim > Artikel > Backend-Entwicklung > Unter Ubuntu1404 ermöglicht die Tomcat8 Nginx Memcache-Konfiguration Server-Cluster-Sitzungsfreigabe
Der zuvor konfigurierte Tomcat-Cluster verwendet die von Tomcat bereitgestellte einfache Clusterverwaltungsmethode:
Zu den Konfigurationsreferenzdokumenten gehören: Klicken Sie, um den Link zu öffnen. Unter diesem Link finden Sie das JAR-Paket, das zu Ihrem Tomcat passt, sowie die Tomcat-Konfigurationsmethode. Lassen Sie uns unten meinen Konfigurationsprozess aufzeichnen.
1. Konfigurieren Sie den Nginx-Reverse-Proxy gemäß dem Inhalt des vorherigen Blogs
2. Installieren Sie Memcache unter Ubuntu:
Sie können den folgenden Befehl zur Installation verwenden it
sudo apt-get install memcached3. Bearbeiten Sie die Datei /etc/memcached.conf:
Diese Datei enthält die Konfiguration jedes Parameters. Kommentieren Sie den Parameter -l hier aus, da Memcache standardmäßig alle Adressen überwacht, oder ändern Sie 127.0.0.1 in 0.0.0.0, damit Memcache die Standardadresse überwacht.
Wenn Sie dies nicht tun, können Sie Memcached nur auf diesem Computer verwenden und andere Computer können keine Verbindung herstellen, sodass dies bedeutungslos ist.
Nach der Konfiguration können Sie mit dem folgenden Befehl überprüfen, ob Memcache verbunden werden kann. Dabei ist IP die auf dem Memcache-Host installierte IP-Adresse und 11211 der Überwachungsport von Memcache.
telnet ip 11211
4. Bearbeiten Sie die Datei CATALINA_HOME/conf/context.xml auf allen Tomcat-Knoten und fügen Sie die folgende Konfiguration unter dem Tag
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:cloud2:11211,n2:cloud3:11211" sticky="false" sessi lockingMode="auto" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" />memcachedNodes ist der Knoten, auf dem Memcache konfiguriert und installiert ist, und cloud3 sind Hostnamen, die von diesem Computer erkannt werden müssen. n1 und n2 sind die Namen der von uns verwendeten Memcache-Knoten Der Port, den Memcache überwacht, ist 11211 der Standardport.
5. Fügen Sie einige JAR-Pakete zu CATALINA_HOME/lib hinzu
Die Pakete, die ich hier verwende, sind:
memcached-session-manager-1.8.3.jar memcached-session-manager-tc8-1.8.3.jar spymemcached-2.11.1.jar
Meine Testidee hier ist wie folgt: Verwenden Sie den folgenden Code, um ein Servlet zu erstellen und es dann auf zwei Tomcat-Servern bereitzustellen. Starten Sie nur einen der Server und greifen Sie dann über den Browser auf den Lastausgleichsserver zu. Sie können die Sitzungs-ID zu diesem Zeitpunkt im Browser anzeigen und notieren. Schließen Sie dann diesen Server, starten Sie einen anderen Tomcat-Server und verwenden Sie dann dieselbe Adresse, um auf den Lastausgleichsserver zuzugreifen. Überprüfen Sie dann die Sitzungs-ID im Browser. Wenn die beiden Sitzungs-IDs identisch sind, bedeutet dies, dass die Sitzungs-ID gemeinsam genutzt wird.
package com.cyber_space.Servlet; import java.io.IOException; import java.io.PrintWriter; import java.net.Inet4Address; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class TestServlet */ @WebServlet("/TestServlet") public class TestServlet extends HttpServlet { private static final long serialVersionUID = 1L; public TestServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { handle(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { handle(request, response); } private void handle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-type", "text/html;charset=UTF-8"); String remoteIpString = request.getRemoteAddr() + " " + request.getRemoteHost() + " " + request.getRemoteUser(); PrintWriter pw = response.getWriter(); pw.println("请求来自:" + remoteIpString); request.getSession().setAttribute("5", 5); String sessionID = request.getSession().getId(); pw.println("赋予它的SESSIONID是:" + sessionID); Inet4Address inet4Address = (Inet4Address) Inet4Address.getLocalHost(); pw.println("服务器的IP地址是:" + inet4Address.getHostAddress()); } }
Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.
Das Obige stellt die gemeinsame Nutzung von Tomcat8-Nginx-Memcache-Konfigurationsserver-Clustern unter Ubuntu1404 vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.