天天看点

nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

nginx+redis+tomcat9.0做tomcat集群

1、linux安装nignx、redis、tomcat9.0.23

2、在tomcat中conf目录下的 context.xml文件中加入红框代码

nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

代码如下

<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 包

nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

下载地址: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" />
           
nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

6、nginx配置负载均衡(这里采用了默认的轮询机制) 指向tomcat配置的端口地址

如果多个服务器 server localhost:8080; 中 localhost:8080 改成服务器的 ip+端口 即可

nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

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" target="_blank" rel="external nofollow"  rel="stylesheet" />
		<link rel="stylesheet" href="assets/css/font-awesome.min.css" target="_blank" rel="external nofollow"  />
		<!--[if IE 7]>
		  <link rel="stylesheet" href="assets/css/font-awesome-ie7.min.css" target="_blank" rel="external nofollow"  />
		<![endif]-->
		<link rel="stylesheet" href="assets/css/ace.min.css" target="_blank" rel="external nofollow"  />
		<link rel="stylesheet" href="assets/css/ace-rtl.min.css" target="_blank" rel="external nofollow"  />
		<link rel="stylesheet" href="assets/css/ace-skins.min.css" target="_blank" rel="external nofollow"  />
        <link rel="stylesheet" href="css/style.css" target="_blank" rel="external nofollow" />
		<!--[if lte IE 8]>
		  <link rel="stylesheet" href="assets/css/ace-ie.min.css" target="_blank" rel="external nofollow"  />
		<![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="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >返回首页</a></li>
    <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >帮助</a></li>
    <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >关于</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>

           

访问地址 查看结果

nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

刷新页面

nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

两次刷新session值一致

ok,tomcat集群配置成功

9、登录时 session写入用户信息会失败

报错 : setAttribute: Non-serializable attribute [admin]

这是因为该类没序列化,分布式部署的时候需要将该类序列化

报错之前

nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

改成

nginx+redis+tomcat9.0做tomcat集群nginx+redis+tomcat9.0做tomcat集群

ok 至此tomcat9.0.23版本集群配置成功

亲测可用!

继续阅读