nginx+redis+tomcat9.0做tomcat集群
1、linux安装nignx、redis、tomcat9.0.23
2、在tomcat中conf目录下的 context.xml文件中加入红框代码
代码如下
<Valve className="com.naritech.nicole.gump.RedisSessionHandlerValve" />
<Manager className="com.naritech.nicole.gump.RedisSessionManager"
host="localhost"
password="123456"
port="6379"
database="2"
maxInactiveInterval="60"
/>
password 既redis的密码 (没有密码直接删掉 password=“123456” 即可 )
port 即 redis端口号
3、在tomcat中lib目录下添加下面三个jar 包
下载地址:https://pan.baidu.com/s/1XDiZrmjDFwI45-4BgJdi9w
提取码 : oafi
如此tomcat配置好了
4、复制当前配置好的tomca按你要做的tomcat集群数量粘贴几次
5、修改每个tomcat中conf目录下server.xml中的端口号
多个tomcat端口号不允许相同避免tomcat启动端口号冲突
<Connector port="9080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
6、nginx配置负载均衡(这里采用了默认的轮询机制) 指向tomcat配置的端口地址
如果多个服务器 server localhost:8080; 中 localhost:8080 改成服务器的 ip+端口 即可
jiqun是集群名称
7、ok,配置完成
启动nignx cd /usr/local/nginx/sbin
./nginx -s reload
启动redis /usr/local/redis-4.0.10/bin/redis-server /usr/local/redis-4.0.10/etc/redis.conf
启动tomcat1 cd /usr/local/tomcat9-1/bin
./startup.sh
启动tomcat2 cd /usr/local/tomcat9-2/bin
./startup.sh
启动tomcat3 cd /usr/local/tomcat9-3/bin
./startup.sh
8、在项目页面展示session判断session是否同步
页面代码如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="assets/css/bootstrap.min.css" rel="stylesheet" />
<link rel="stylesheet" href="assets/css/font-awesome.min.css" />
<!--[if IE 7]>
<link rel="stylesheet" href="assets/css/font-awesome-ie7.min.css" />
<![endif]-->
<link rel="stylesheet" href="assets/css/ace.min.css" />
<link rel="stylesheet" href="assets/css/ace-rtl.min.css" />
<link rel="stylesheet" href="assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="css/style.css"/>
<!--[if lte IE 8]>
<link rel="stylesheet" href="assets/css/ace-ie.min.css" />
<![endif]-->
<script src="assets/js/ace-extra.min.js"></script>
<!--[if lt IE 9]>
<script src="assets/js/html5shiv.js"></script>
<script src="assets/js/respond.min.js"></script>
<![endif]-->
<script src="js/jquery-1.9.1.min.js"></script>
<script src="assets/layer/layer.js" type="text/javascript"></script>
<title>登录</title>
</head>
<body class="login-layout Reg_log_style">
<div class="logintop">
<span>欢迎后台管理界面平台</span>
<ul>
<li><a href="#">返回首页</a></li>
<li><a href="#">帮助</a></li>
<li><a href="#">关于</a></li>
</ul>
</div>
<div class="loginbody">
<div class="login-container">
<div class="center">
<img src="images/logo.png" weight="480px" height="60px"/>
</div>
<div class="space-6"></div>
<div class="position-relative">
<div id="login-box" class="login-box widget-box no-border visible">
<div class="widget-body">
<div class="widget-main">
<h4 class="header blue lighter bigger">
<i class="icon-coffee green"></i>
管理员登录 tomcat集群1
SessionID:<%=session.getId()%>
<BR>
</h4>
<div class="login_icon"><img src="images/login.png" /></div>
<form class="">
<fieldset>
<ul>
<li class="frame_style form_error"><label class="user_icon"></label><input name="账号" type="text" id="phone"/><i>用户名</i></li>
<li class="frame_style form_error"><label class="password_icon"></label><input name="密码" type="password" id="userpwd"/><i>密码</i></li>
<!-- <li class="frame_style form_error"><label class="Codes_icon"></label><input name="验证码" type="text" id="Codes_text"/><i>验证码</i><div class="Codes_region"></div></li> -->
</ul>
<div class="space"></div>
<div class="clearfix">
<label class="inline">
<input type="checkbox" class="ace">
<span class="lbl">保存密码</span>
</label>
<button type="button" class="width-35 pull-right btn btn-sm btn-primary" id="login_btn">
<i class="icon-key"></i>
登录
</button>
</div>
<div class="space-4"></div>
</fieldset>
</form>
<div class="social-or-login center">
<span class="bigger-110">通知</span>
</div>
<div class="social-login center">
本网站系统不再对IE8以下浏览器支持,请见谅。
</div>
</div><!-- /widget-main -->
<div class="toolbar clearfix">
</div>
</div><!-- /widget-body -->
</div><!-- /login-box -->
</div><!-- /position-relative -->
</div>
</div>
</body>
</html>
访问地址 查看结果
刷新页面
两次刷新session值一致
ok,tomcat集群配置成功
9、登录时 session写入用户信息会失败
报错 : setAttribute: Non-serializable attribute [admin]
这是因为该类没序列化,分布式部署的时候需要将该类序列化
报错之前
改成
ok 至此tomcat9.0.23版本集群配置成功
亲测可用!