Redian新闻
>
Nginx静态压缩和代码压缩,提高访问速度!

Nginx静态压缩和代码压缩,提高访问速度!

公众号新闻

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 

来源: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动态压缩了嘛?好像是这么一回事!!!

天才呀!!!

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

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的静态压缩,就到这里了!!!



欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
最近一些乱象的根源和代价小学Year4英文语法知识,区分名词和代词!强化学习第十三篇:使用深度学习解决迷宫问题,完整步骤和代码开通倒计时!这条高铁开始静态验收美股基本面 - 2024_03_14 * 晨报 * 微博公布2023年第四季度及财年未经审计财务业绩及股息。鸿海第四季度净利润新一代跨平台UI开发工具VGG——无代码还原设计稿的静态视觉效果重磅!拜登政府出新规!180内给结果!加快庇护审理速度!这些城市的非法移民小心!传苹果提高自动化生产目标,压缩代工厂5成人力;曾毓群:宁德时代民用电动载人飞机合作项目取得进展丨智能制造日报ICML 2024 | 大模型Checkpoint极致压缩,精度无损存储降低70倍Spring 全家桶版本更新:Spring Boot、Spring Security 和 Spring Modulith死磕nginx系列-nginx日志配置nginx服务器Linux内核参数优化配置 Nginx 反向代理 WebSocketNginx限速模块大揭秘Nginx高并发性能优化 - 运维笔记利用 Java 反射机制提高 SpringBoot 的代码质量一国总理访问华为;任正非因何访问四川大学?Cloudflare 正式开源Nginx替代品:Pingoranginx日志切割巴郎《行为随谈》46 审情判断亚裔文化月:反思知名度和代表性的力量让你的文档从静态展示到一键部署可操作验证【模板】Aβ/Tau双阳,加速认知正常个体的脑萎缩和认知功能下降深入解析Nginx Location匹配规则:顺序详解与最佳实践换季必备!太力免抽气真空压缩袋,不用工具3秒压缩,让衣柜空间大大大!还是航天纪念款!马斯克突然宣布:推迟访问印度!特斯拉被裁中国员工:有人没拿到“N+3”赔偿,可能会仲裁!今年公司市值已暴跌超2万亿元Nginx 核心开发者发布新分支 Freenginx经期运动暑期TOP30美高访校团开始招募!Choate前招生官亲自带队!限5个家庭!离别车站ICML 2024 | 提升收敛速度!人大提出基于镜像下降的贝叶斯小样本分类爱的速度无法比拟!客户L女士父母亲属移民三个月火速拿到绿卡,用爱创造新速度!断舍离进行中被星链改变的亚马孙部落:“通网”带来的改变和代价| 纽约时报NGINX 必学——日志切割
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。