系统环境:CentOS release 6.4
软件版本
redis-2.8.24.tar.gz
tengine-1.4.6
tomcat-7.0.54
tomcat-redis-session-manager-3.0.0.jar
commons-pool2-2.2.jar
jedis-2.7.1.jar
nginx | 192.168.200.100:80 |
tomcat1 | 192.168.200.100:8080 |
tomcat2 | 192.168.200.100:9090 |
redis | 192.168.200.250:6369 |
说明:本文只是为了测试多台tomcat共享session,建立了两台机器,nginx和tomcat一台机器,redis一台机器。
如果tomcat放置在不同的机器可以使用相同的端口
1.安装redis数据库
解压
tar -zxf redis-2.8.24.tar.gz
cd redis-2.8.24
make
创建redis主目录,执行文件目录,日志目录,数据存放目录
mkdir /usr/local/redis
mkdir /usr/local/redis/bin
mkdir /usr/local/redis/log
mkdir /usr/local/redis/data/6369
拷贝文件
cp redis-server /usr/local/redis/bin/
cp redis-cli /usr/local/redis/bin/
cp redis.conf /usr/local/redis/6369.conf
vim 6369.conf
daemonize yes
pidfile /var/run/redis-6369.pid
port 6369
logfile "/usr/local/redis/log/redis-6369.log"
dir ./data/6369
wq!
设置可以直接使用命令方法
cp bin/redis-server /usr/local/bin
cp bin/redis-cli /usr/local/bin
启动服务
redis-server 6369.conf
连接数据库
redis-cli -p 6369
redis安装配置完毕
接下来是nginx和tomcat
1.nginx和tomcat安装过程不再赘述
nginx安装步骤http://www.ulshang.com/service/2016/01/296.html
tomcat 安装步骤http://www.ulshang.com/service/2016/01/298.html
2.nginx配置nginx.conf
添加
upstream site {
server 192.168.200.100:8080;
server 192.168.200.100:9090;
}
server
{
listen 80;
server_name 192.168.200.100;
index index.jsp index.html index.htm;
error_log /data/logs/error/error.log crit;
access_log /data/logs/access/access.log access;
location ~ \.jsp$ {
proxy_pass http://site;
proxy_redirect off;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
3.tomcat配置
tomcat安装目录
conf/context.xml
添加以下配置
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="192.168.200.250"
port="6369"
database="0"
maxInactiveInterval="60" />
confi/server.xml
定义网站程序的目录
<Host name="localhost" appBase="/data/web" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/data/web" />
4.拷贝文件到lib
commons-pool2-2.2.jar
jedis-2.7.1.jar
tomcat-redis-session-manager-3.0.0.jar
5.复制一份tomcat为第二个tomcat
cp -r tomcat tomcat2
修改conf/server.xml文件
<Host name="localhost" appBase="/data/home" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/data/home" />
把文件中的8005改成8006端口,8080端口改成9090,否则会出现端口冲突
6.创建数据存放目录
mkdir -p /data/{web,home}
在web中新建index.jsp页面
vim index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>session</title>
</head>
<body>
tomcat1 //tomcat1和tomcat2区别
<%String s = session.getId(); //获取session ID号 %>
<%=s %>
<%
session.setAttribute("test", "test123");
%>
</body>
</html>
home中新建index.jsp
vim index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>session</title>
</head>
<body>
tomcat2
<%String s = session.getId(); //获取session ID号 %>
<%=s %>
</body>
</html>
7.启动nginx和tomcat服务
进入到tomcat主目录
./bin/startup.sh
直接使用nginx可以启用nginx服务
8.测试
浏览器输入http://192.168.200.100/index.jsp
正常情况会出现tomcat1 和一串字符串(就是session)
刷新浏览器,tomcat1和tomcat2交替出现,但是session值不变
9.在redis服务器查看session
redis-cli -p 6369
127.0.0.1:6369>keys *
完毕