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的反向代理实例详解
Mar 31 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
Windows Server 2012 R2 磁盘分区教程
Apr 29 Servers
Nginx配置之禁止指定IP访问
May 02 Servers
linux目录管理方法介绍
Jun 01 Servers
nginx代理实现静态资源访问的示例代码
Jul 07 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
Jul 15 Servers
windows server2016安装oracle 11g的图文教程
Jul 15 Servers
Windows Server 2016服务器用户管理及远程授权图文教程
Aug 14 Servers
ubuntu开机后ROS程序自启动问题
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 网上商城促销设计实例代码
2012/02/17 PHP
php中fsockopen用法实例
2015/01/05 PHP
PHP实现事件机制的方法
2015/07/10 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
实例说明Python中比较运算符的使用
2015/05/13 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python语言中with as的用法使用详解
2018/02/23 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
python写日志文件操作类与应用示例
2019/07/01 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
python修改文件内容的3种方法详解
2019/11/15 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
Python实现弹球小游戏
2020/08/01 Python
python实现单机五子棋
2020/08/28 Python
平面设计求职信
2014/03/10 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
党员证明信
2015/06/19 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python