首页 > 系统相关 >Nginx静态压缩和代码压缩,提高访问速度!

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

时间:2024-04-01 09:33:46浏览次数:33  
标签:application nginx 静态 压缩 访问速度 Nginx gzip css

https://mp.weixin.qq.com/s/0yfUWWfM2RcQBgCiAKcZLA

  • nginx静态资源动态压缩
  • nginx静态资源静态压缩

基于目前大部分的应用,都使用了前后端分离的框架,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的静态压缩,就到这里了!!!

标签:application,nginx,静态,压缩,访问速度,Nginx,gzip,css
From: https://www.cnblogs.com/hanby/p/18107762

相关文章

  • Linux基础命令篇之——压缩与解压(tar、gzip、bzip2、zip和unzip)
    linux基础命令——解压与压缩以下是关于Linux命令tar、gzip、bzip2、zip和unzip的详细介绍:1.tar这个是Linux用的最多的解压缩命令tar是Linux系统中用于创建和处理归档文件的命令。归档文件是一个包含多个文件和/或目录的单一文件。常与压缩命令gzip或bzip2结合使用,以减......
  • 微信小程序 图片压缩
    主要是通过canvas进行压缩兼容wx.compressImageAPIwx.compressImage还没测试,canvas缩放宽高比才能达到压缩utils/compressImage.js//compressImage.js/***@param{object}img包含path:图片的path,size:图片的大小*@param{object}canvascanvas对象*@param{n......
  • nginx负载均衡二
    2.反向代理(负载均衡的重要参数)2.反向代理(负载均衡的重要参数)#转发http请求的,明确你的后端是运行在基于http协议上。proxy_pass请求转发的目标地址;proxy_passhttp://127.0.0.1:8888;#部署PHP网站#后端php-fpm此时配置文件/etc/php-fpm.d/www.conf#人家说该服......
  • Nginx 配置,自定义日志格式 log_format
    文章目录前沿配置Nginx重点解析前沿nginx记录日志,太方便。这里提供一种小技巧。配置Nginxserver{listen8080;server_namelocalhost;location/proxy/server{default_typetext/html;return200"success";}......
  • 【Docker】使用 Docker 主机启动 Nginx 服务器的步骤详解
    文章目录步骤一:安装Docker步骤二:拉取Nginx镜像步骤三:启动Nginx容器步骤四:访问Nginx服务器步骤五:管理Nginx容器总结在本文中,我们将介绍如何使用Docker在主机上启动Nginx服务器。Nginx是一个高性能的HTTP和反向代理服务器,经常用于托管网站和Web应用。通过Docker,我们可......
  • helm 安装 nginx-ingress-controller v1.10.0
    1、说明准备nginx-ingress三种不同的部署模式Deployment+LoadBalancer采用deployment进行部署nginx-ingress-controller,需要创建一个type:LoadBalancer的service进行关联nginx-ingress-controller这组pod。通常是在使用公有云进行创建负载均衡器并绑定公网地址。只要将域名......
  • Nginx(面试)
    NGINX速记问答Q什么是Nginx?它的主要特点是什么?ANginx是一个高性能的开源Web服务器和反向代理服务器。它以高并发、低内存消耗和高稳定性著称。QNginx与ApacheWeb服务器有什么区别?ANginx与Apache相比,更适用于处理高并发和静态内容。它使用异步、事件驱动的架构,占用......
  • 状态压缩的三种模型
    第一种类型(摆放方块): 代码如下:#include<iostream>#include<climits>#include<algorithm>#include<cstring>#include<cstdio>#include<cmath>#include<queue>#include<string>#include<vector>usingnamespacestd;......
  • 下载阿里云服务器的SSL证书,并部署到Nginx服务中
    环境说明linux系统版本:lsb_release-a  JDK版本:1.8  不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。.1.登录阿里云服务器,下载SSL证书。  选择SSL证书->免费证书->下载。  选择Nginx证书进行下载,因为真实访问的时候,都是访问ng......
  • windows下nginx-rtmp-module的编译方法
    ForewordLinux为当前nginx添加rtmp模块非常的方便,sudo./configure--add-module+sudomake就完事儿了,但是windows比较复杂,没有包管理器,所以各个模块的源码要自己找,下面是我在windows11下的nginxwithrtmpmodule的编译记录。编译器工具链大概有msvctoolchain,perl......