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 包
如此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版本集羣配置成功
親測可用!