千家信息网

Tomcat8+Redis+Nginx实现集群

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Tomcat8.5.14+Redis+Nginx实现集群知识点1)什么是集群集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。说白了就是同一个业务,部署在多
千家信息网最后更新 2026年10月31日Tomcat8+Redis+Nginx实现集群

Tomcat8.5.14+Redis+Nginx实现集群

知识点

1)什么是集群
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。
说白了就是同一个业务,部署在多个服务器上。
2)集群所遇到的问题

session共享

  • 基于NFS的Session共享

  • 基于数据库的Session共享

  • 基于Cookie的Session共享

  • 基于缓存的Session共享(本次选用这种方式)

3)集群优点

  • 提高性能

  • 降低成本

  • 提高可扩展性

  • 增强可靠性

测试环境

JDK版本:JDK8
Tomcat版本:apache-tomcat-8.5.14
Redis版本:redis-2.4.5
Nginx版本:nginx-1.11.6

需要的jar包

放入Tomcat下的lib文件夹下:
commons-pool2-2.4.2.jar
jedis-2.9.0.jar
javazhan-tomcat-redis-session.jar

下载地址:Tomcat8+Redis实现集群所需Jar架包 http://down.51cto.com/data/2449143

修改配置文件

1)Tomcat
复制apache-tomcat-8.5.14两份,分别命名apache-tomcat-81与apache-tomcat-82。为了能启动两个tomcat需要修改server.xml的端口。

  1. 服务端口

2.访问连接端口

 第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

connectionTimeout="6000" enableLookups="flase" acceptCount="800"

redirectPort="8443" />

3.与HTTP服务器连接端口

 第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。



配置 context.xml 文件:session共享

WEB-INF/web.xml

${catalina.base}/conf/web.xml

host="127.0.0.1"

port="6379"

database="0"

maxInactiveInterval="60" />

说明:
如果tomcat配置中,将manager放在server.xml中,那么使用maven做热部署时,会发生失败。所以,推荐放在context.xml中。


2)Nginx


修改conf目录下的nginx.conf文件


upstream javazhan.com {

server yan.10010.com:8881 weight=5;

server yan.10010.com:8882 weight=5 ;

}

server {

listen 80;

server_name api.xxx.com;

location /

{

proxy_set_header Host $host;

proxy_set_header X-Real-Ip $remote_addr;

proxy_set_header X-Forwarded-For $remote_addr;

proxy_pass http://javazhan.com;

}

}



新建web项目


新建文件夹ClusterTest ,新建sessiontest.jsp,放到tomcat文件夹下webapps下。


<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ page import="java.util.*"%>


ClusterApp Test

访问的Nginx IP:<%=request.getServerName()%>


Tomcat SessionPort:<%=request.getServerPort()%>

<%

out.println("Tomcat Server Info=" + request.getLocalAddr() + " : " + request.getLocalPort() + "
");

out.println("当前 Session ID=" + session.getId() + "
");

%>


<%

String dataName = request.getParameter("dataName");

if (dataName != null && dataName.length() > 0) {

String dataValue = request.getParameter("dataValue");

session.setAttribute(dataName, dataValue);

}


out.println("Session列表
");

System.out.println("Session列表");

Enumeration e = session.getAttributeNames();

while (e.hasMoreElements()) {

String name = (String) e.nextElement();

String value = session.getAttribute(name).toString();

out.println(name + " = " + value + "
");

System.out.println(name + " = " + value);

}

%>


名称:

值:


测试

1)启动nginx
2)启动redis
3)启动tomcat(两个)
4)启动浏览器
5)输入地址 http://yan.10010.com/ClusterTest/sessiontest.jsp


可以看出同一地址,分别访问两个tomcat服务器,并且session值不变,实现了session共享。

服务 集群 文件 服务器 端口 版本 连接器 两个 地址 文件夹 配置 就是 浏览器 测试 浏览 监听 说白了 业务 优点 可扩展性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 互联网是第几次科技革命的成果 互联网科技网 伴你行互联网科技有限公司 江苏南京365互联网科技 现代互联网科技股 湖北码尼互联网科技有限公司电话 移动互联网科技公司 乌鲁木齐新华智原互联网科技学校 互联网公司黑科技创始人 上海京穆互联网科技有限公司 智帮互联网科技公司最近动向 云南省自由互联网科技有限公司 图游互联网科技 半导体行业属于互联网高科技类吗 九思连强互联网电子科技有限公司 容联科技互联网电商 张家口科技产业互联网平台 东风日产互联网科技公司叫什么 互联网高科技绘画 互联网科技工作委员会毛军 互联网的科技创新 世界互联网领先科技成果 电子科技大学互联网 科技赋能互联网健康 科技与互联网哪个更好 互联网与医疗科技 山东子淼互联网科技有限公司 锡山区互联网智能科技产品供应 福仕德教育科技互联网
0