Nginx静态压缩和代码压缩,提高访问速度!

发布网友 发布时间:2024-09-27 18:06

我来回答

1个回答

热心网友 时间:2024-10-13 08:08

夏日炎炎,天气变得越来越炎热了喔!!!

但我们上班的心情,还是不能被这炎热的夏天所影响的,所以今天咋们来讲讲如何给前端访问加加速吧!!!

基于目前大部分的应用,都使用了前后端分离的框架,vue的前端应用,也是十分的流行。

不知道大家伙,有无遇到这样的问题:

随着前端框架的页面,功能开发不断的迭代;安装的依赖,不断的增多;

这样导致的问题,就是我们的前端框架,会变得十分庞大,打包出来的dist目录会变得很大了喔!!!

这样就会导致一个问题:首次访问应用,会变得很慢!!!

这确实是一个严重的问题!!!T_T

对于这个问题,咋们今天就从代码压缩+Nginx静态资源压缩,两个方面进行研究解决!!!

nginx静态资源动态压缩

nginx开启gzip压缩

server{listen80;listen[::]:80;server_namelocalhost;server_tokensoff;#开启gzip压缩gzipon;gzip_disable"msie6";gzip_varyon;gzip_proxiedany;gzip_comp_level6;gzip_buffers168k;gzip_http_version1.1;gzip_typestext/plainapplication/csstext/cssapplication/xmltext/javascriptapplication/javascriptapplication/x-javascript;#llsydn前端location/jxbp{alias/opt/llsydn/jxbp;indexindex.html;try_files$uri$uri//dist/index.html;}}

然后重启nginx:nginx-sreload

看看是否已经生效!!!

压缩的效果图

没有压缩的效果图:

从上面两张图可以看到:

第一张经过压缩:finish时间为2.36s,transferred为7.6MB

第二张没有压缩:finish时间为6.32s,transferred为24.6MB

很明显,经过了nginx的静态资源压缩,访问速度提高了,显著的!!!

看到这,咋们会有这样的一个问题,这压缩都是nginx干的活,那当访问量变大,那对于nginx的压力,是十分大的,毕竟都是动态压缩的!!!

那有无解决方法呢?

nginx静态资源动态压缩的原理,无非就帮我们将js、css等文件,压缩为一个.gz文件,然后传输给前端浏览器,进行解析。

说到这,咋们不禁会说:那咋们先将js、css等文件,生成对应的.gz文件,不就不需要nginx动态压缩了嘛?

好像是这么一回事!!!

天才呀!!!

nginx静态资源静态压缩

将js、css等文件,生成对应的.gz文件

这个,就可以借助一些依赖进行处理了:compression-webpack-plugin

安装依赖:

npminstallcompression-webpack-plugin-D

vue.config.js

constCompressionWebpackPlugin=require('compression-webpack-plugin')constproctionGzipExtensions=['js','css']vueConfig.configureWebpack.plugins.push(newCompressionWebpackPlugin({test:/.js$|.html$|.\css/,//匹配文件名threshold:1024,//对超过1k的数据压缩deleteOriginalAssets:false//不删除源文件}))

打包:

npmrunbuild

可以看到,已经帮我们生成对应的.gz文件了!!!

nginx配置

在上面的基础上,再加上

gzip_staticon

nginx得安装下面得模块:

ngx_http_gzip_mole模块ngx_http_gzip_static_mole模块ngx_http_gunzip_mole模块

nginx开启gzip压缩

server{listen80;listen[::]:80;server_namelocalhost;server_tokensoff;#开启gzip压缩gzipon;gzip_staticongzip_disable"msie6";gzip_varyon;gzip_proxiedany;gzip_comp_level6;gzip_buffers168k;gzip_http_version1.1;gzip_typestext/plainapplication/csstext/cssapplication/xmltext/javascriptapplication/javascriptapplication/x-javascript;#llsydn前端location/jxbp{alias/opt/llsydn/jxbp;indexindex.html;try_files$uri$uri//dist/index.html;}}

然后重启nginx:nginx-sreload

看看是否已经生效!!!

静态压缩

动态压缩

好了,nginx的静态压缩,就到这里了!!!

今天就先到这里了,溜了溜了溜了!!!^_^

觉得有收获的,帮忙点个赞呗!!!

原文:https://juejin.cn/post/71016633749576074

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com