image.png
1、在nginx主机上实现将客户端的请求反向代理至后端的两台tomcat主机
vim /etc/nginx/nginx.conf
upstream tcsrvs { ---在http语句块里
server 172.18.21.7:8080;
server 172.18.21.200:8080;
}
location / { ---在server语句块里
proxy_pass http://tcsrvs;
}
systemctl start nginx
2、配置并启动redis
vim /etc/redis.conf
bind 0.0.0.0 ---监控在本地的所有ip
requirepass "centos" ---设置连接redis的密码
systemctl start redis ---redis可以启用主从复制和sentinel故障转移,本实验为了方便,只使用一台redis主机
3、在两个tomcat主机上的设置
mkdir -pv /usr/share/tomcat/webapps/myapp/WEB-INF
cd /usr/share/tomcat/webapps/myapp/
vim index.jsp ---创建测试页面
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head> ---将另外一台主机改为B
<body>
<h1><font color="red">TomcatA.magedu.com</font></h1>---将另外一台主机改为B,颜色改为green用来区分
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("magedu.com","magedu.com"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
在/etc/tomcat/context.xml里添加如下语句
vim /etc/tomcat/context.xml
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="172.18.21.100" ---指明后端的redis主机
password="centos" ---指明连接redis主机的密码
port="6379" ---指明端口
database="0" ---指明存储到redis的哪个数据库
maxInactiveInterval="60"/>
[root@node1 jar]#ls ---将如下.jar文件拷贝到两台tomcat主机的 /usr/share/tomcat/lib/目录下
commons-pool2-2.4.2.jar jedis-2.8.2.jar tomcat-redis-session-manage-tomcat7.jar
cp * /usr/share/tomcat/lib/
systemctl start tomcat ----启动tomcat服务
[root@node3 myapp]#redis-cli -a centos
127.0.0.1:6379> KEYS *
1) "97CB1BF4F3AB955F02D95BC85F60CDF0" ---可以看到存储的会话的键
4、测试
http://172.18.21.100/myapp/
发现无论调度至tomat的哪个主机,会话是一样的,没有变化,说明会话保存成功。
网友评论