一、Session共享使用tomcat-cluster-redis-session-manager插件实现


插件地址见:

https:///ran-jit/tomcat-cluster-redis-session-manager

该插件支持Tomcat7、Tomcat8、Tomcat9

或者直接在附件中下载(版本为2.0.2,2017-11-27日前最新版本)

http://dl.iteye.com/topics/download/d9fffd9d-84dd-385b-b10e-6376eaf0c815

这里有是一个只支持Tomcat7的,不支持tomcat8,暂时不见新的维护:

https:///jcoleman/tomcat-redis-session-manager

二、tomcat-cluster-redis-session-manager详解

1、解压后的文件如下:

win10 Redis启动后停止_win10 Redis启动后停止

conf目录下有一个redis-data-cache.properties :

Redis的配置文件

#-- Redis data-cache configuration

ib目录下有4个jar包,如下:

1. commons-logging-1.

2.jar2. commons-pool2-2.4.2.jar

3. jedis-2.9.0.jar

4. tomcat-cluster-redis-session-manager-2.0.1.jar

三、使用方法:

压缩文件中有使用方法,见readMe.txt 文件:

第一步:

1. Move the downloaded jars

就是把lib目录下的Jar包全复制到tomcat/lib目录下

(一般来说tomcat是集群,至少有2个tomcat,所以先配置好一个tomcat,复制完文件后,再将tomcat文件重新复制一份,这样省事,但需要修改tomcat相应的端口)

第二步:

2. Add tomcat

就是配置一个环境变量,和Jdk配置的环境变量一样,需要配置一个catalina.base的环境变量,值为TOMCAT_LOCATION

如下:

win10 Redis启动后停止_win10 Redis启动后停止_02

win10 Redis启动后停止_razor 怎样使用session变量_03

第三步:

3. Extract downloaded package (tomcat-cluster-redis-session-manager.zip)

把conf目录下的配置文件redis-data-cache.properties复制到tomcat/conf/目录下

第四步:

4. Add the below two lines

在tomcat/conf/目录下的context.xml文件,加上相应的配置,如下:

xml version="1.0" encoding="UTF-8"?>  <Context>      <WatchedResource>WEB-INF/web.xmlWatchedResource>

第五步:

5. Verify the session expiration time (minutes) in tomcat/

修改session的过期时间,默认是30分钟,可以不需要此步骤。

session集群的配置至此结束。

四、Nginx集群

1、下载Nignx:

http://nginx.org/en/download.html

本人练习时使用windows,所以下载的windows版本:

http://nginx.org/download/nginx-1.13.7.zip

2、下载后解压:D:\soft\nginx-1.12.2(之前使用的是1.12.2的版本,现在最新版是1.13.7,但都一样,附件中有1.12.2版本提供下载)

win10 Redis启动后停止_win10 Redis启动后停止_04

3、修改Nginx配置文件nginx.conf

进入conf目录(D:\soft\nginx-1.12.2\conf),找到nginx.conf配置文件,打开编辑:3.1在http{……}里加上upstream,如下:

upstream myTomcatCluster{

server:配置tomcat服务器请求的地址,2台Tomcat服务就配置2个server,分别对应9300,9400端口

weight 表示权重,权重越大,访问到的机率越大。

3.2、修改location / {……}

默认是这个的:

location / {

修改成这样:

location / {

最简单的配置就是:

location / {


myTomcatCluster 对应upstream后的命名。

下面的配置可以解决2个Tomcat服务器集群,当一台服务器挂掉(宕机)后,请求变得很慢的问题。

(Tomcat集群一台服务器挂掉后请求变慢解决方案)

proxy_connect_timeout

3.3、启动Nginx服务器

使用Windows命令行启动

(1)进入D盘:d:

(2)进入D:\soft\nginx-1.12.2目录:

cd

(3)启动服务:(启动一闪而过,但打开进程管理器能看到是已经启动的)

start nginx

关闭服务的命令:nginx -s stop

重新加载的命令:nginx -s reload,修改配置文件后,可以使用该命令直接加载,不需要重启。

五、测试集群:

1、tomcat准备将已经配置好的一个tomcat复制一份,修改端口,然后再修改一下tomcat的配置文件(server.xml)我的一个tomcat在:

D:\soft\apache-tomcat-8.0.45-9300\conf另一个是:

D:\soft\apache-tomcat-8.0.45-9400\conf修改:

<Engine defaultHost="localhost" name="Catalina">

其中tomcat 9300端口的修改如下:

<Engine defaultHost="localhost" jvmRoute="jvm9300" name="Catalina">

tomcat 9400端口的修改如下:

<Engine defaultHost="localhost" jvmRoute="jvm9400" name="Catalina">

2、项目准备:

新建立一个web项目,然后新建立一个index.jsp的文件,如下:

"text/html; charset=UTF-8"