此集群方式重点在于tomcat容器集群。即多个Tomcat容器来共同管理session会话的方式,用redis来储存session,tomcat容器连接redis并进行session内容管理,nginx进行http的请求代理,分发到不同的tomcat容器进行处理(根据具体的设定规则)。
下面重点来讲述tomcat的设置及导入jar包,分为五个步骤:
一、要求tomcat为7的版本,java要求JDK7/JRE7版本;若安装的JDK/JRE是32/64位的,对应tomcat7也应该是32/64位的。
二、以下是所需要的基本的类库包,需要放入tomcat的lib目录,如下图:
三、修改tomcat下bin目录下的【catalina.bat】,如下图:
Paste_Image.png代码明细
rem JRE_HOME ="C:\Program Files (x86)\Java\jdk1.7.0_80"
四、在tomcat中配置与redis连接及管理工具类,修改conf目录下的【context.xml】,如下图:
Paste_Image.png代码明细
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1" <!--redis ip地址,本地可以用127.0.0.1(需要包含在redis的配置文件【redis.windows-service.conf】的bind属性中)-->
port="6379" <!--redis端口号-->
database="0" <!--redis的第0个数据库,具体有多少个数据库可以在redis中进行配置-->
maxInactiveInterval="60" />
</Context>
五、在tomcat/webapps/ROOT目录放一个index.jsp(用于测试),代码如下:
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head>
<body>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
sessionID:<%=session.getId()%>
<br>
SessionIP:<%=request.getServerName()%>
<br>
SessionPort:<%=request.getServerPort()%>
<%
//为了区分,第二个tomcat可以是NO.2
out.println("This is Tomcat Server NO.1");
%>
就这样我们完美的配置好了tomcat的session管理 :)
nginx安装及配置
我们选用【nginx-1.10.2.zip】压缩包进行解压即可使用nginx。
Paste_Image.png Paste_Image.png上面两个图是对nginx的集群配置的讲解;接下来为了方便,我们把nginx注册为(window系统)系统服务:
Paste_Image.png Paste_Image.png Paste_Image.png要注意的是:创建服务时一定要用管理权限,cd到ng_srvinst目录下,运行ng_srvinst.bat install命令即可,如要删除此删除运行ng_srvinst.bat remove。
redis安装及配置
我们选用【Redis-x64-3.2.100.zip】压缩包进行解压即可使用redis。需要注意的是,spring-session要求Redis Server版本不低于2.8。
解压后,我们需要修改redis的配置文件【redis.windows-service.conf】,允许局域网内访问,如下图:
接下来为了方便,我们把redis注册为(window系统)系统服务,找到redis安装目录的【Windows Service Documentation.docx】文件即可,如下图:
Paste_Image.png如上图用,管理员权限cd到Redis目录下,打入命令:
redis-server --service-install redis.windows-service.conf --service-name redis
回车后即可在系统服务中,找到redis Paste_Image.png
总结:与Spring+nginx+redis集群的区别是,tomcat方式集群要求tomcat7版本及jdk7/jre7的版本。而Spring方式要求Redis Server版本不低于2.8且使用spring mvc框架。
网友评论