


Under Ubuntu1404, Tomcat8+Nginx+memcache configures server cluster session sharing
The Tomcat cluster configured before uses the simple cluster management method provided by Tomcat:
Configuration reference documents include: Click to open the link. In this link, you can find the jar package that matches your Tomcat, as well as the Tomcat configuration method. Let’s record my configuration process below.
1. Configure Nginx reverse proxy according to the content of the previous blog;
2. Install memcache under ubuntu:
You can directly use the following command to install
sudo apt-get install memcached
This file contains the configuration of each parameter. Comment out the -l parameter here, because memcache will listen to all addresses by default, or change 127.0.0.1 to 0.0.0.0 to let memcache listen to the default address.
If you don’t do this, you can only use memcached on this machine. If other machines cannot connect, it will be meaningless.
After configuration, you can use the following command to check whether memcache can be connected, where ip is the ip address installed on the memcache host, and 11211 is the listening port of memcache.
telnet ip 11211
4. Edit the CATALINA_HOME/conf/context.xml file on all Tomcat nodes and add the following configuration under the
<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)$" />
5. Add some jar packages to CATALINA_HOME/lib
The packages I use here are:
memcached-session-manager-1.8.3.jar memcached-session-manager-tc8-1.8.3.jar spymemcached-2.11.1.jar
6. Then you can start Tomcat and nginx for testing
My testing idea here is like this , use the following code to create a Servlet, and then deploy it to two tomcat servers. Start only one of the servers, and then access the load balancing server through the browser. You can view and write down the SessionID at this time on the browser. Then close this server, start another tomcat server, and then use the same address to access the load balancing server, and then check the SessionID on the browser. If the two SessionIDs are the same, it means that the SessionID is shared.
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()); } }
There is still a lot of work that can be done here that has not been done yet, such as efficient serialization configuration, etc. We will do it when we have time in the future.
Copyright Statement: This article is an original article by the blogger and may not be reproduced without the blogger's permission.
The above introduces the configuration of server cluster session sharing under Ubuntu1404, Tomcat8+Nginx+memcache, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



To deploy a JAR project to Tomcat, follow these steps: Download and unzip Tomcat. Configure the server.xml file, set the port and project deployment path. Copies the JAR file to the specified deployment path. Start Tomcat. Access the deployed project using the provided URL.

To allow the Tomcat server to access the external network, you need to: modify the Tomcat configuration file to allow external connections. Add a firewall rule to allow access to the Tomcat server port. Create a DNS record pointing the domain name to the Tomcat server public IP. Optional: Use a reverse proxy to improve security and performance. Optional: Set up HTTPS for increased security.

Tomcat installation directory: Default path: Windows: C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 Custom path: You can specify it during installation. Find the installation directory: use whereis or locate command.

To deploy multiple projects through Tomcat, you need to create a webapp directory for each project and then: Automatic deployment: Place the webapp directory in Tomcat's webapps directory. Manual deployment: Manually deploy the project in Tomcat's manager application. Once the project is deployed, it can be accessed by its deployment name, for example: http://localhost:8080/project1.

How to check the number of concurrent Tomcat connections: Visit the Tomcat Manager page (http://localhost:8080/manager/html) and enter your user name and password. Click Status->Sessions in the left navigation bar to see the number of concurrent connections at the top of the page.

The Tomcat website root directory is located in Tomcat's webapps subdirectory and is used to store web application files, static resources, and the WEB-INF directory; it can be found by looking for the docBase attribute in the Tomcat configuration file.

The Tomcat port number can be viewed by checking the port attribute of the <Connector> element in the server.xml file. Visit the Tomcat management interface (http://localhost:8080/manager/html) and view the "Status" tab. Run "catalina.sh version" from the command line and look at the "Port:" line.

Running projects with different port numbers on the Tomcat server requires the following steps: Modify the server.xml file and add a Connector element to define the port number. Add a Context element to define the application associated with the port number. Create a WAR file and deploy it to the corresponding directory (webapps or webapps/ROOT). Restart Tomcat to apply changes.
