轻松学会Nginx与Tomcat实现动静分离

本文介绍如何通过Nginx实现动静分离,提高网站响应速度。详细步骤包括防火墙配置、Nginx与Tomcat安装配置及多实例部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念

动静分离:通过中间件将动态请求和静态请求交给Nginx(或Apache)进行分离,静态请求直接由Nginx(或Apache处理)处理,动态请求转发到Tomcat处理;分离资源,减少不必要的请求消耗,减少请求延时。

Tomcat缺点:处理html(静态资源)的能力远不及apache或者nginx

好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响


案例

请使用Nginx做中间件,Nginx自身处理静态请求,动态请求转发给Tomcat处理。

角色安装软件地址
静态资源Nginx:1.20172.16.0.6
动态资源Jdk1.80;Tomcat :8.5.64172.16.0.7

1、搭建 基础环境
1)防火墙策略配置

配置防火墙规则,允许Nginx服务、Tomcat服务流量通过。
Nginx服务器防火墙规则
[root@nginx ~]# firewall-cmd --add-service=http

Tomcat服务器防火墙规则
firewall-cmd --add-port=8080/tcp
firewall-cmd --add-port=8081/tcp

2)Tomcat服务器安装Java环境
yum -y install java-1.8.0

2、Nginx服务器配置
创建配置文件:
vim /etc/nginx/conf.d/default.conf

upstream tomcat_server {
   server 172.16.0.7:8080;
   server 172.16.0.7:8081;
}
server {
   listen       80;
   server_name  localhost;

   #charset koi8-r;
   #access_log  /var/log/nginx/host.access.log  main;

   location / {
       root   /usr/share/nginx/html;
       index  index.html index.htm;
   }

   #error_page  404              /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /usr/share/nginx/html;
   }


   location ~* .jsp$ {
               proxy_pass http://tomcat_server;
               proxy_set_header HOST $http_host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }

}

创建静态请求文件:
echo ‘“catalina.sh”, “run”’> /usr/share/nginx/html/index.html

3、Tomcat服务器配置(以单机多实例为例)
1)解压
tar xf /project/apache-tomcat-8.5.64.tar.gz -C /opt/
创建软连接:ln -s /opt/apache-tomcat-8.5.64 /opt/tomcat

2)部署多实例:
cd /opt/
cp -a apache-tomcat-8.5.64 /opt/tomcat_01
sed -i ‘s#8005#8006#g’ tomcat_01/conf/server.xml
sed -i ‘s#8009#8010#g’ tomcat_01/conf/server.xml
sed -i ‘s#8080#8081#g’ tomcat_01/conf/server.xml

3)创建动态请求文件:以实例Tomcat为例,实例Tomcat1一样

此代码会在访问的时候随机动态生成随机码

[root@tomcat ROOT]# vim /opt/tomcat/webapps/ROOT/connect.jsp 
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
    <HEAD>
        <TITLE>raid5:读写都提升,有冗余,利用率N-1,只能坏一块,至少3块</TITLE>
    </HEAD>
    <BODY>
      <%
        Random rand = new Random();
        out.println("<h1>Random number:</h1>");
        out.println(rand.nextInt(99)+100);
      %>
     </BODY>
</HTML>

启动Tomcat:
/opt/tomcat/bin/startup.sh
/opt/tomcat_01/bin/startup.sh

验证:
访问Nginx的IP地址:
静态请求成功:
在这里插入图片描述

动态请求成功:
在这里插入图片描述
在Tomcat服务器日志,也可以查看到:
在这里插入图片描述
负载均衡,也成功,共访问两次,第一个请求是Tomcat处理;第二个是Tomcat_01处理

报错处理:
在这里插入图片描述
分析:Nginx的配置文件,格式错误,修改正确的即可!
其次,Tomcat版本不一样,可能配置方法也不一样

查看tomcat版本信息
1)使用curl命令收集网页信息,过滤出“Apache Tomcat”即可

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术职场教练

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值