Nginx 静态压缩和代码压缩实战,大大提高网站访问速度!

简介: Nginx 静态压缩和代码压缩实战,大大提高网站访问速度!

原文:juejin.cn/post/7101663374957608974


基于目前大部分的应用,都使用了前后端分离的框架,vue的前端应用,也是十分的流行。不知道大家有无遇到这样的问题:


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


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


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


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


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


nginx静态资源动态压缩


nginx开启gzip压缩

server {

       listen       80;

       listen  [::]:80;

       server_name  localhost;

       server_tokens off;


       # 开启gzip压缩

       gzip on;

       gzip_disable "msie6";

       gzip_vary on;

       gzip_proxied any;

       gzip_comp_level 6;

       gzip_buffers 16 8k;

       gzip_http_version 1.1;

       gzip_types text/plain application/css text/css application/xml text/javascript application/javascript application/x-javascript;


       #llsydn 前端

       location /jxbp {

            alias  /opt/llsydn/jxbp;

            index index.html;

            try_files $uri $uri/ /dist/index.html;

       }

}


然后重启nginx:nginx -s reload


看看是否已经生效!!!


压缩的效果图

664dde44e2deb1e2990f0cc279ceeb3c_151ecd929c134eba910e879e77578bfd.png


没有压缩的效果图

fa08f2239e16d01f37738c6f7e2a7130_324291c37e994afd96be6767a6fa6056.png


从上面两张图可以看到:


第一张经过压缩: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


安装依赖:


npm install compression-webpack-plugin -D

vue.config.js

const CompressionWebpackPlugin = require('compression-webpack-plugin')

const productionGzipExtensions = ['js', 'css']

vueConfig.configureWebpack.plugins.push(new CompressionWebpackPlugin({

   test:/.js$|.html$|.\css/, // 匹配文件名

   threshold: 1024, // 对超过1k的数据压缩

   deleteOriginalAssets: false // 不删除源文件

}))


打包:


npm run build

1a0b74916bd82f7eb1972e48eeca562d_9c8bfb063eb449389cfc40dad0ae0515.png


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


nginx配置

在上面的基础上,再加上


gzip_static on

nginx得安装下面得模块:

ngx_http_gzip_module模块

ngx_http_gzip_static_module模块

ngx_http_gunzip_module模块


nginx开启gzip压缩

server {

       listen       80;

       listen  [::]:80;

       server_name  localhost;

       server_tokens off;


       # 开启gzip压缩

       gzip on;

       gzip_static on

       gzip_disable "msie6";

       gzip_vary on;

       gzip_proxied any;

       gzip_comp_level 6;

       gzip_buffers 16 8k;

       gzip_http_version 1.1;

       gzip_types text/plain application/css text/css application/xml text/javascript application/javascript application/x-javascript;


       #llsydn 前端

       location /jxbp {

            alias  /opt/llsydn/jxbp;

            index index.html;

            try_files $uri $uri/ /dist/index.html;

       }

}




然后重启nginx:nginx -s reload


看看是否已经生效!!!


静态压缩

65397b360cdaf1828f28d05e143981a4_b9a48df9f2a9464aba9370c1005a0cdd.png


动态压缩

aa8dd3de5f7588ccc360b7f12a8998c3_aeb63f83c5b04ee09e9033ef394a9d96.png


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

————————————————

版权声明:本文为CSDN博主「Java技术栈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/youanyyou/article/details/130592977

相关文章
|
28天前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
237 0
|
1月前
|
Docker 容器
docker nginx-proxy 添加自定义https网站
docker nginx-proxy 添加自定义https网站
34 4
|
1月前
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
3月前
|
监控 网络协议 应用服务中间件
高并发下Nginx压缩
【8月更文挑战第16天】gzip压缩在Nginx中可减少传输数据量,加快响应速度但消耗CPU。可在http、server及location级别配置。高并发时,启用Nginx状态监控以检查性能,配置`nginx.conf`添加`location /NginxStatus { stub_status on; access_log off; }`并重启Nginx
52 12
|
3月前
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
66 1
|
3月前
|
应用服务中间件 nginx
nginx配置gzip压缩
nginx配置gzip压缩
|
4月前
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
135 1
|
3月前
|
Ubuntu 应用服务中间件 Linux
如何在Ubuntu 14.04上使用Nginx和Php-fpm安全地托管多个网站
如何在Ubuntu 14.04上使用Nginx和Php-fpm安全地托管多个网站
27 0
|
3月前
|
缓存 应用服务中间件 nginx
运维系列.Nginx中使用HTTP压缩功能(二)
运维系列.Nginx中使用HTTP压缩功能(二)
47 0
|
4月前
|
前端开发 JavaScript 应用服务中间件
Nginx 开启 gzip 压缩,让网站飞一会!
一起来了解下nginx的gzip压缩
287 3