Nginx静态压缩和代码压缩提高访问速度详解


Posted in Servers onMay 30, 2022

前言

基于目前大部分的应用,都使用了前后端分离的框架,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

看看是否已经生效!!!

  • 压缩的效果图

Nginx静态压缩和代码压缩提高访问速度详解

  • 没有压缩的效果图:

Nginx静态压缩和代码压缩提高访问速度详解

从上面两张图可以看到:

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

Nginx静态压缩和代码压缩提高访问速度详解

可以看到,已经帮我们生成对应的.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静态压缩和代码压缩提高访问速度详解

  • 动态压缩

Nginx静态压缩和代码压缩提高访问速度详解

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

总结

到此这篇关于Nginx静态压缩和代码压缩提高访问速度的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
Nginx中break与last的区别详析
Mar 31 Servers
nginx处理http请求实现过程解析
Mar 31 Servers
Nginx的反向代理实例详解
Mar 31 Servers
Shell脚本一键安装Nginx服务自定义Nginx版本
Mar 20 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
Jun 01 Servers
基于docker安装zabbix的详细教程
Jun 05 Servers
Windows server 2022创建创建林、域树、子域的步骤
Jun 25 Servers
Windows server 2012 NTP时间同步的实现
Jun 25 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
修改Nginx配置返回指定content-type的方法
Sep 23 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 Servers
Nginx 配置 HTTPS的详细过程
May 30 #Servers
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
May 25 #Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 #Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
详解Nginx的超时keeplive_timeout配置步骤
May 25 #Servers
nginx 配置指令之location使用详解
May 25 #Servers
zabbix配置nginx监控的实现
May 25 #Servers
You might like
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
行政主管职责范本
2014/03/07 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
投标承诺函范文
2015/01/21 职场文书
如何在Python中创建二叉树
2021/03/30 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
Python列表的索引与切片
2022/04/07 Python
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技