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
【尚学堂】Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程_Java语言入门到精通_哔哩哔哩_bilibili