测试环境:
1、apache-tomcat-7.0.42
2、jdk1.7.0_67_64
3、Redis-x64-3.2.100
4、windows系统
一、下载tomcat-redis-session的源码自行打包
源码地址:https://github.com/jcoleman/tomcat-redis-session-manager
<modelVersion>4.0.0</modelVersion>
<groupId>com.hik</groupId>
<artifactId>tomcat-redis-session</artifactId>
<version>7.0</version>
<name>demo</name>
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>7.0.27</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
</dependency>
</dependencies>
二、打包生成tomcat-redis-session-7.0.jar包,从maven仓库中拷贝一份jedis-2.7.2.jar 和tomcat-catalina-7.0.27.jar,再下载commons-pool2-2.4.1.jar;将这4个包放入tomcat\lib目录下;
三、配置tomcat\conf下的context.xml文件
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- tomcat-redis-session共享配置 -->
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
</Context>
四、多个tomcat的配置都一致,所以把配置都copy到对应的其他tomcat下。
五.、nginx负载均衡配置
#设定实际的服务器
upstream zp_server1{
server 127.0.0.1:8080;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
#反向代理
server {
listen 80;
server_name localhost;
proxy_set_header Host $host;
proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://zp_server1;
}
#静态文件,nginx自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /root;
expires 30d;
}
#设定查看nginx状态的地址
location /nginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus"; #这个是提示信息
#auth_basic_user_file conf/htpasswd;
}
#禁止访问 .htxxx 文件
location ~ /\.ht {
deny all;
}
#错误处理页面(可选择性配置)
#error_page 404 /404.html;
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root html;
#}
}
六、下载redis安装并运行 http://redis.io/download
解压后进入...../Redis-x64-3.2.100 目录
在CMD中执行 redis-server.exe redis.windows.conf 如图
七、测试整个环境
新建:test.jsp、放在\apache-tomcat-7.0.42-8081\webapps\ROOT下,其它tomcat也放一份
<html>
<body bgcolor="green">
<center>
<%=request.getSession().getId() %>
<h1>192.168.1.107:8081</h1>
</center>
</body>
</html>
启动nginx,启动准备好的tomcat
访问:http://localhost/test.jsp 不停的刷新页面 发现页面的sessionid不变;关闭某个tomcat继续F5,sessionid也不变,说明环境搭建成功。