关于java:Nginx-静态压缩和代码压缩实战大大提高网站访问速度

35次阅读

共计 2286 个字符,预计需要花费 6 分钟才能阅读完成。

原文: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

看看是否曾经失效!!!

  • 压缩的效果图
  • 没有压缩的效果图

从下面两张图能够看到:

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

能够看到,曾经帮咱们生成对应的.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

看看是否曾经失效!!!

  • 动态压缩
  • 动静压缩

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

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿 (2022 最新版)

2. 劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4. 别再写满屏的爆爆爆炸类了,试试装璜器模式,这才是优雅的形式!!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

正文完
 0