一、准备3台虚拟机
192.168.37.137,192.168.37.134,192.168.37.135;
二、192.168.37.137
①配置nginx,nginx.conf配置文件:
events {
worker_connections 1024;
}
http {
upstream tomcat{
server 192.168.37.134:8080;
server 192.168.37.135:8080;
}
server{
listen 80;
location / {
proxy_pass http://tomcat;
}
}
}
②启动redis,用于存放共享的session
三、192.168.37.134,192.168.37.135,分别部署一台tomcat,两台的部署操作是一样,以134这台机子为例
①下载apache-tomcat-7.0.91.tar.gz,放在/opt/tomcat目录下,并解压
②进入tomcat的目录,/opt/tomcat/apache-tomcat-7.0.91/conf,编辑context.xml文件,加入redis配置
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="192.168.37.137"
port="6379"
password="123456"
database="0"
maxInactiveInterval="60" />
③进入tomcat的目录,/opt/tomcat/apache-tomcat-7.0.91/lib,添加redis的jar包
commons-pool2-2.2.jar,jedis-2.5.2.jar,tomcat-redis-session-manage-tomcat7.jar
④为了验证sessionId是否相同,我们修改/opt/tomcat/apache-tomcat-7.0.91/webapps/ROOT的index.jsp文件,输出sessionId:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>session id</title>
</head>
<body>
134 Session Id : <%= request.getSession().getId() %>
</body>
</html>
⑤启动tomcat
四、访问
http://192.168.37.137/
交替显示
134 Session Id : 00A9B9054BEEBD3DF50951E150DA850D
135 Session Id : 00A9B9054BEEBD3DF50951E150DA850D
nginx对两台tomcat进行了负载均衡,并且无论访问到哪台tomcat,其sessionId是相同的
我们用RedisDesktopManager客户端查看,也可以看到这条sessionId为00A9B9054BEEBD3DF50951E150DA850D的session