动静分离架构模式

上一篇 <<<压缩静态资源减少带宽传输的方式
下一篇 >>>缓存策略汇总


1.动静分离概念

动静分离(动态文件与静态文件的分离)是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

静态资源:当用户多次访问这个资源,资源的源代码永远不会改变的资源。
动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变。

2.为什么要用动静分离

提高用户访问静态代码的速度,降低对后台应用访问。
Nginx作为静态资源服务器比Tocmat响应吞吐高很多;
传统的架构模式中,静态资源(js、css、img、mp4)与动态(jsp、ftl)存放到同一个服务器,tomcat本身做为静态资源服务器响应的速度比nginx差;
动静分离是将动态资源(jsp/ftl)与静态资源(img/css/js)分开,从而提高网站响应的速度,至少减少一次nginx到tomcat获取数据又返回的操作。

3.动静分离与前后分离的区别

前后分离 将前端业务逻辑与后端完全分开 比如 vue+SpringBoot架构
动静分离 将静态资源资源与动态资源分开部署;

4.动静分离的实现原理

通过location对请求url进行匹配即可

###静态资源访问—可以基于location前缀,也可以基于location后缀
server {
listen       80;
server_name  static.test.com;
#基于本地root写法
location /static/imgs {
   root F:/;
   index  index.html index.htm;
}
#基于本地alias写法
location /static/ {
            alias   E:/static/imgs/;
        }
#基于另外服务器的图片获取,还可以解决跨域问题
location /static/ {
        proxy_pass   http://www.test.com/static/imgages/index-img/;
        index  index.html index.htm;
        }
}
###动态资源访问
server {
listen       80;
server_name  www.test.com;

location / {
 proxy_pass http://127.0.0.1:8080;
 index  index.html index.htm;
}
}

5.纯后台代码如何实现静态化

freemarker+nginx+lua+openrestry


推荐阅读:
<<<高并发架构的整体思路
<<<一个网站访问慢的真正原因
<<<高并发情况下,接口的代码会存在哪些问题
<<<压缩静态资源减少带宽传输的方式
<<<缓存策略汇总
<<<后端服务的雪崩效应及解决思路
<<<服务的隔离、降级和熔断
<<<服务限流之计数器方式
<<<服务限流之滑动窗口计数
<<<服务限流之令牌桶算法
<<<服务限流之漏桶算法
<<<漏桶算法和令牌桶算法的区别
<<<自定义封装限流算法
<<<应用级限流
<<<接入层限流

你可能感兴趣的:(动静分离架构模式)