Tomcat实现Session复制
需要三台虚拟机一台Nginx两台Tomcat
关闭相关的安全机制
systemctl stop firewalld
iptables -F
setenforce 0
首先需要将两台Tomcat和一台nginx实现负载均衡
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
在http底下写入一个地址池里面写入你的IP地址:端口:权重
upstream tomcat_server { #你的地址池
server 192.168.200.12:8080 weight=1;
server 192.168.200.13:8080 weight=1;
}
在server里面实现你访问jsp的负载均衡
location ~ .jsp$ {
proxy_pass http://tomcat_server; #你的地址池名称
proxy_set_header Host $http_host;
}
一:配置各个机器的主机名
一台命名为Nginx
两台命名为node1 ,node2
[root@localhost ~]#hostname Nginx
[root@localhost ~]#hostname node1
[root@localhost ~]#hostname node2
二:配置主机名与ip的映射
[root@localhost ~]# vim /etc/hosts #修改etc下的hosts文件
192.168.200.16 nginx
192.168.200.12 node1
192.168.200.13 node2
三:修改Tomcat的配置文件
注:两台Tomcat都要做相同配置
[root@node1 ~]# vim /usr/local/tomcat/webapps/ROOT/session.jsp #创建测试文件
Session ID:<%= session.getId() %><BR>
Sessionport:<%= request.getServerPort() %>
<% out.println("hello 192.168.200.12");%>
[root@node1 ~]# vim /usr/local/tomcat/conf/server.xml #修改Tomcat的主配文件
<Engine name="Catalina" defaultHost="localhost" jvmRoute="node1"> #将括号中加入jvmRoute=“node1”主机名
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> #取消注释(还有官方的方法加入官方给的代码)
[root@node1 ~]# vim /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml #修改web.xml文件
将文件的倒数第二行加入<distrbutable/>
四:重新启动服务
[root@node1 ~]# /usr/local/tomcat/bin/shutdown.sh && /usr/local/tomcat/bin/startup.sh
五:如果出现错误需要添加组播地址
route add -net 224.0.0.0 network 240.0.0.0 dev ens32 #最后写入自己的网卡名称
六:测试