什么是动静分离?

动静分离是为了提高网站性能,通过Nginx区分并处理静态和动态请求,避免资源浪费。文章介绍了如何通过Nginx判断URL类型,实现静态资源由Nginx直接响应,动态请求转发至Tomcat。同时,讲解了Rewrite用于URL重写和跳转的原理,包括set、if、return等指令的使用,以及在实际开发和运维中的应用。
摘要由CSDN通过智能技术生成

1.什么是动静分离?

将动态请求和静态请求区分访问,

2.为什么要做动静分离?

静态由Nginx处理, 动态由PHP处理或Tomcat处理....
因为Tomcat程序本身是用来处理jsp代码的,但tomcat也能处理静态资源.
tomcat本身处理静态效率不高,还会带来资源开销.

3.如何实现动静分离?

Nginx根据客户端请求的url来判断请求的是否是静态资源,如果请求的url包含jpg、png,则由Nginx处理。
如果请求的url是.php或者.jsp等等,这个时候这个请求是动态的,将转发给tomcat处理。
总结来说,Nginx是通过url来区分请求的类型,并转发给不同的服务端。

4.单机实现动静分离实战

    [root@web01 ~]# yum install java tomcat -y
​   [root@web01 ~]# mkdir /usr/share/tomcat/webapps/ROOT        -->主要站点根目录
​   [root@web01 ~]# vi /usr/share/tomcat/webapps/ROOT/index.jsp
​   <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
​   <html>

      <head>
        <title>Nginx+Tomcat</title>
      </head>

​     <body>
​         <%
​           Random rand = new Random();
​           out.println("<h2>动态资源</h2>");
​           out.println(rand.nextInt(99)+100);
​       %>

        <h2>静态图片</h2>

​       <img src="nginx.png" />
​     </body>
​   </html>
[root@web01 ~]# wget -O /usr/share/tomcat/webapps/ROOT/nginx.png http://nginx.org/nginx.png
[root@web01 ~]# systemctl start tomcat
tomcat监听在8080端口上:

#配置Nginx 
[root@web01 conf.d]# cat ds.oldxu.com.conf 
server {
    listen 80;
   
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx可以通过配置实现动静分离,将静态资源(如HTML、CSS、JavaScript、图片等)和动态请求(如PHP、Java、Python等脚本)分别交给不同的处理方式。 以下是实现动静分离的一般步骤: 1. 配置Nginx:首先,在Nginx的配置文件中指定静态资源的存放位置和动态请求的转发规则。可以使用 `root` 指令来指定静态资源的根目录,例如:`root /var/www/static;`。然后,使用 `location` 指令来定义动态请求的转发规则,例如:`location /api/ { proxy_pass http://backend_server; }`,其中 `backend_server` 是后端处理动态请求的服务器地址。 2. 静态资源缓存:为了提高性能,可以启用Nginx的静态资源缓存功能。可以使用 `expires` 指令来设置静态资源的缓存时间,例如:`expires 7d;`,表示静态资源在客户端缓存7天。另外,可以使用 `gzip` 指令来启用压缩,减少传输数据量,例如:`gzip on;`。 3. 反向代理:对于动态请求,可以使用Nginx作为反向代理服务器,将请求转发给后端的应用服务器进行处理。使用 `proxy_pass` 指令来设置反向代理的地址,例如:`proxy_pass http://backend_server;`。 通过以上配置,当有请求到达Nginx时,如果是静态资源的请求,Nginx会直接返回对应的静态文件;如果是动态请求的请求,则会根据配置将请求转发给后端的应用服务器进行处理。 动静分离可以提高系统的性能和并发处理能力,减轻了动态请求对应用服务器的压力,同时静态资源可以通过缓存和压缩等方式提高用户体验和网站加载速度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值