HAProxy实现后端Tomcat的负载均衡调度
环境准备
四台机器:
client:10.0.0.37 客户端 测试
haproxy:10.0.0.17 HAProxy-2.4.15 负载均衡调度器
tomcat1: 10.0.0.7 Tomcat-8.5.78
tomcat2: 10.0.0.27 Tomcat-8.5.78
1haproxy
[root@haproxy ~]#vim /etc/haproxy/conf.d/test.cfg
listen ha1_tomcat_80
bind 10.0.0.17:80
balance roundrobin
server tomcat1 10.0.0.7:8080 check inter 3000 fall 2 rise 5
server tomcat2 10.0.0.27:8080 check inter 3000 fall 2 rise 5
[root@haproxy ~]#systemctl restart haproxy.service
2 tomcat2
#项目路径配置
[root@tomcat2 ~]#mkdir -pv /data/webapps/ROOT
#编写测试jsp文件
[root@tomcat2 ~]#vim /data/webapps/ROOT/index.jsp
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tomcat2.linux2022.com</title>
</head>
<body>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
#虚拟主机配置
[root@tomcat2 ~]#cd /usr/local/tomcat/
[root@tomcat2 tomcat]#pwd
/usr/local/tomcat
[root@tomcat2 tomcat]#vim conf/server.xml
<Engine name="Catalina" defaultHost="tomcat2.linux2022.com">
<Host name="tomcat2.linux2022.com" appBase="/data/webapps/"
unpackWARs="true" autoDeploy="true">
</Host>
#设置权限
[root@tomcat2 tomcat]#chown -R tomcat.tomcat /data/webapps/
#重启Tomcat服务
[root@tomcat2 tomcat]#systemctl restart tomcat.service
3 tomcat1
#项目路径配置
[root@tomcat1 ~]# mkdir -pv /data/webapps/ROOT
#编写测试jsp文件
[root@tomcat1 ~]#vim /data/webapps/ROOT/index.jsp
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tomcat1.linux2022.com</title>
</head>
<body>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
#虚拟主机配置
[root@tomcat1 ~]#cd /usr/local/tomcat/
[root@tomcat1 tomcat]#pwd
/usr/local/tomcat
[root@tomcat1 tomcat]#vim conf/server.xml
<Engine name="Catalina" defaultHost="tomcat1.linux2022.com">
<Host name="tomcat1.linux2022.com" appBase="/data/webapps/"
unpackWARs="true" autoDeploy="true">
</Host>
#设置权限
[root@tomcat1 tomcat]#chown -R tomcat.tomcat /data/webapps/
#重启Tomcat服务
[root@tomcat1 tomcat]#systemctl restart tomcat.service
4 client
#客户端测试访问
[root@client ~]#vim /etc/hosts
10.0.0.17 www.linux2022.com
[root@client ~]#curl www.linux2022.com/index.jsp
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tomcat1.linux2022.com</title>
</head>
<body>
<div>On www.linux2022.com</div>
<div>10.0.0.7:8080</div>
<div>SessionID = <span style="color:blue">ACA640B784FAE849555A8CAACD0EE210</span></div>
Mon Apr 25 14:33:53 CST 2022
</body>
</html>
[root@client ~]#curl www.linux2022.com/index.jsp
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tomcat2.linux2022.com</title>
</head>
<body>
<div>On www.linux2022.com</div>
<div>10.0.0.27:8080</div>
<div>SessionID = <span style="color:blue">F5F67E34EC69C31E6F9F029FA54A30B3</span></div>
Mon Apr 25 14:33:54 CST 2022
</body>
</html>