tomcat session cluster的实现
1.环境准备
IP 主机名 服务
10.0.0.150 proxy.tan.com httpd
10.0.0.160 tomcat1.tan.com JDK8、tomcat8
10.0.0.170 tomcat2.tan.com JDK8、tomcat8
2.在proxy主机配置httpd实现后端tomcat主机轮询
[root@proxy ~]#vim /etc/httpd/conf.d/tomcat.conf
<Proxy balancer://tomcat-server>
BalancerMember http://tomcat1.tan.com:8080 loadfactor=1
BalancerMember http://tomcat2.tan.com:8080 loadfactor=1
<VirtualHost *:80>
ServerName proxy.tan.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
ProxyPass / balancer://tomcat-server/
ProxyPassReverse / balancer://tomcat-server/
[root@proxy ~]#systemctl restart httpd
或者使用nginx来实现后端轮询
在http语句块中添加upstream模块
upstream tomcat-server{
server tomcat1.tan.com:8080;
server tomcat2.tan.com:8080;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name proxy.tan.com; #修改此行
root /usr/share/nginx/html;
Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://tomcat-server;#添加此行
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
[root@proxy ~]#systemctl start nginx
编写hosts解析
[root@proxy ~]#cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.160 tomcat1.tan.com
10.0.0.170 tomcat2.tan.com
3.在后端tomcat1主机上安装tomcat并修改conf/server.xml
安装脚本请见上一此作业
[root@tomcat1 ~]#bash tomcat8.5.sh
[root@tomcat1 ~]#vim /usr/local/tomcat/conf/server.xml
...#略
...#略
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="230.188.188.188" #配置多播地址
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="10.0.0.160" #配置本机ip
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
...#略
[root@tomcat1 ~]#cat /usr/local/tomcat/webapps/ROOT/index.jsp
<%@ page import="java.util.*" %>
<%=new Date()%>
[root@tomcat1 ~]#systemctl restart tomcat
4.在后端tomcat2主机上安装tomcat并修改conf/server.xml
安装脚本请见上一此作业
[root@tomcat2 ~]#bash tomcat8.5.sh
[root@tomcat2 ~]#vim /usr/local/tomcat/conf/server.xml
...#略
...#略
...#略
[root@tomcat2 ~]#cat /usr/local/tomcat/webapps/ROOT/index.jsp
<%@ page import="java.util.*" %>
<%=new Date()%>
[root@tomcat2 ~]#systemctl restart tomcat
5.修改应用的web.xml文件开启该应用程序的分布式
修改tomcat1主机的应用的web.xml文件
[root@tomcat1 ~]#tail -n3 /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml
[root@tomcat1 ~]#systemctl restart tomcat
修改tomcat2主机的应用的web.xml文件
[root@tomcat2 ~]#tail -n3 /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml
[root@tomcat2 ~]#systemctl restart tomcat
6.访问测试,此时主机轮询但是session不会变
[root@proxy ~]#curl -I proxy.tan.com/index.jsp HTTP/1.1 200
Server: nginx/1.14.1
Date: Mon, 29 Aug 2022 05:05:28 GMT
Content-Type: text/html;charset=ISO-8859-1
Connection: keep-alive
Set-Cookie: JSESSIONID=06CEDA54AEFBBE67465BC4307874000D; Path=/; HttpOnly
[root@proxy ~]#curl -b "JSESSIONID=06CEDA54AEFBBE67465BC4307874000D" proxy.tan.com/index.jsp
Mon Aug 29 13:05:48 CST 2022
[root@proxy ~]#curl -b "JSESSIONID=06CEDA54AEFBBE67465BC4307874000D" proxy.tan.com/index.jsp
Mon Aug 29 13:05:52 CST 2022

浙公网安备 33010602011771号