Nginx+Tomcat的动静分离

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

首先准备好5台机子2台装有tomcat3台装有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如果图片加载不出来并且无法跳转页面的话可以右击被 "压缩的图片" 点击 "加载图片" 然后再刷新就好了

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: nginxTomcat