首先准备好5台机子:2台装有tomcat,3台装有nginx
1.关闭5台机子的防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
Nginx1
vim /usr/local/nginx/conf/nginx.conf#在--#pid-- 下做四层代理
stream {upstream test {server 192.168.220.122:8080;server 192.168.220.123:8080;}server {listen 80;proxy_pass test;}
}#修改http模块中server的端口号为81,避免重复listen 81;
检查并重启服务
nginx -t
systemctl restart nginx
netstat -antp | grep nginx
2、3为静态页面,又做为7层代理 转发动态请求
Nginx2
vim /usr/local/nginx/conf/nginx.conf#在http模块中添加7层代理;加权轮询
upstream ky30 {server 192.168.220.111:8080 weight=1;server 192.168.220.112:8080 weight=1;
}#修改http模块中的连接保持超时时间为0
keepalive_timeout 0;#修改server端口号为8080
listen 8080;#在server模块中添加
location ~ .*\.jsp$ {proxy_pass http://ky30;proxy_set_header HOST $host;#将真实的请求IP地址传给后端服务器proxy_set_header X-Real-IP $remote_addr;#记录代理服务器的地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#设置访问静态页面
location ~ .*\.(gif|jpg|png)$ {root html;index index.html index.htm;
}重启nginx服务
systemctl restart nginx
Nginx3进行与2相同的操作
vim /usr/local/nginx/conf/nginx.conf#在http模块中添加7层代理;加权轮询
upstream ky30 {server 192.168.220.111:8080 weight=1;server 192.168.220.112:8080 weight=1;
}#修改http模块中的连接保持超时时间为0
keepalive_timeout 0;#修改server端口号为8080
listen 8080;#在server模块中添加
location ~ .*\.jsp$ {proxy_pass http://ky30;proxy_set_header HOST $host;#将真实的请求IP地址传给后端服务器proxy_set_header X-Real-IP $remote_addr;#记录代理服务器的地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#设置访问静态页面
location ~ .*\.(gif|jpg|png)$ {root html;index index.html index.htm;
}重启nginx服务
systemctl restart nginx
Tomcat1
cd /usr/local/tomcat/webapps/
mkdir test
vim test/index.jsp添加内容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP Tomcat1 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.Tomcat1.com");%>
</body>
</html>
修改主配置文件
cd /usr/local/tomcat/conf/
修改前先备份文件
cp server.xml server.xml.20230812.bak
vim server.xml删除原有的<host>标签,再添加下面内容
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
重启tomcat
/usr/local/tomcat/bin/shutdown.sh/usr/local/tomcat/bin/startup.sh
打开浏览器访问
访问配置tomcat1的IP地址
192.168.220.111:8080/index.jsp
Tomcat2进行与1相同的操作,显示的内容需要进行修改
cd /usr/local/tomcat/webapps/
mkdir test
vim test/index.jsp添加内容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP Tomcat2 page</title>
</head>
<body>
<% out.println("动态页面 2,http://www.Tomcat2.com");%>
</body>
</html>
修改主配置文件
cd /usr/local/tomcat/conf/
修改前先备份文件
cp server.xml server.xml.20230812.bak
vim server.xml删除原有的<host>标签,再添加下面内容
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
重启tomcat
/usr/local/tomcat/bin/shutdown.sh/usr/local/tomcat/bin/startup.sh
打开浏览器访问
访问配置tomcat2的IP地址
192.168.220.112:8080/index.jsp
nginx2
cd /usr/local/nginx/html/
vim index.html清空原有内容,添加下面内容
<html>
<head>
<title>Nginx test1 page</title>
</head>
<body>
<h1>this is Nginx static test1 !</h2>
<img src="1.jpg"/>
</body>
</html>在html目录下添加图片1.jpg
nginx3
cd /usr/local/nginx/html/
vim index.html清空原有内容,添加下面内容
<html>
<head>
<title>Nginx test2 page</title>
</head>
<body>
<h1>this is Nginx static test2 !</h2>
<img src="2.jpg"/>
</body>
</html>在html目录下添加图片2.jpg
通过浏览器访问代理服务器
访问nginx1的IP地址
访问静态页面
192.168.220.122:8080/index.html
192.168.220.123:8080/index.html访问动态页面前端
192.168.220.121后端
192.168.220.121/index.jsp
刷新页面即可实现动态访问
ps:如果图片加载不出来,并且无法跳转页面的话,可以右击被 "压缩的图片" 点击 "加载图片" ,然后再刷新就好了