nginx+redis+tomcat9.0做tomcat集羣


nginx+redis+tomcat9.0做tomcat集羣

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

2、在tomcatconf目錄下的 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、修改每個tomcatconf目錄下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版本集羣配置成功
親測可用!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章