nginx实现后端tomcat的负载均衡调度
环境准备
四台机器:
client:10.0.0.37 客户端 测试
proxy:10.0.0.17 nginx-1.18 负载均衡调度器
tomcat1: 10.0.0.7 Tomcat-8.5.78
tomcat2: 10.0.0.27 Tomcat-8.5.78
1proxy
[root@proxy ~]#vim /apps/nginx/conf/nginx.conf
http {
upstream tomcat {
server tomcat1.linux2022.com:8080;
server tomcat2.linux2022.com:8080;
}
server {
listen 80;
server_name www.linux2022.com;
location / {
proxy_pass http://tomcat;
}
}
[root@proxy ~]#nginx -t
[root@proxy ~]#nginx -s reload
[root@proxy ~]#vim /etc/hosts
10.0.0.7 tomcat1.linux2022.com
10.0.0.27 tomcat2.linux2022.com
[root@proxy ~]#systemctl restart nginx.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
#默认使用RR轮询调度算法
[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 tomcat</div>
<div>10.0.0.27:8080</div>
<div>SessionID = <span style="color:blue">5FE48687926B239CE23427CE21D35FDE</span></div>
Mon Apr 25 10:51:37 CST 2022
</body>
</html>
[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 tomcat</div>
<div>10.0.0.7:8080</div>
<div>SessionID = <span style="color:blue">E7E1001CDE44EA9FEAF744E2892EBC4E</span></div>
Mon Apr 25 10:52:02 CST 2022
</body>
</html>