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 相关文章推荐
windows下快速安装nginx并配置开机自启动的方法
May 11 Servers
Nginx中使用Lua脚本与图片的缩略图处理的实现
Mar 18 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
Nginx+Tomcat负载均衡多实例详解
Apr 11 Servers
Tomcat执行startup.bat出现闪退的原因及解决办法
Apr 20 Servers
阿里云 Windows server 2019 配置FTP
Apr 28 Servers
Windows server 2012搭建FTP服务器
Apr 29 Servers
tomcat下部署jenkins的方法
May 06 Servers
windows server 2016 域环境搭建的方法步骤(图文)
Jun 25 Servers
git中cherry-pick命令的使用教程
Jun 25 Servers
设置IIS Express并发数
Jul 07 Servers
ubuntu端向日葵键盘输入卡顿问题及解决
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
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
img的onload的另类用法
2008/01/10 Javascript
javascript 表单的友好用户体现
2009/01/07 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
Python with用法实例
2015/04/14 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
django创建超级用户过程解析
2019/09/18 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
师范生自荐信范文
2013/10/06 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技