vue加载nginx内存狂涨不加载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue加载nginx内存狂涨不加载相关的知识,希望对你有一定的参考价值。

zoukankan html css js c++ java
nginx配置解决vue单页面打包文件大,首次加载慢的问题
  cnpm run build 文件过大,其中主要是vender.js有1.5M,代码部署到服务器,首次访问加载页面时比较慢,耗时6.5s左右,所以需要优化下。

1、Nginx开启gzip

  找到nginx.config。关于gzip压缩代码:

http
gzip on; #开启或关闭gzip on off
gzip_disable "msie6"; #不使用gzip IE6
gzip_min_length 100k; #gzip压缩最小文件大小,超出进行压缩(自行调节)
gzip_buffers 4 16k; #buffer 不用修改
gzip_comp_level 3; #压缩级别:1-10,数字越大压缩的越好,时间也越长
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 压缩文件类型
gzip_vary off; #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"

  配置完重启Nginx

  识别gzip与非gzip请求

  gzip请求:

  非gzip请求:

  gzip与非gzip在响应头中区别就是Content-Encoding是否表明是gzip压缩格式。

  而上面通过接收数据与实际数据大小相比也能明显看出差异

2、webpack gzip

  vue项目中config/index.js

productionGzip: true, //是否开启gizp压缩
productionGzipExtensions: ['js', 'css'],
  开启后cnpm run build会生成*.gz文件。

  上传到服务器,测试查看接受文件大小。发现接收依然是1.5M的,而不是469K的,

  莫非,webpack打包gzip文件毫无卵用?

3、gzip_static 静态压缩

  经过一番百度,得一宝贝,gzip_static。什么东东呢?字面上意思就是:gzip静态。

  卖个关子:上面配置了,Nginx是可以开启gzip压缩,而且能够实现压缩效果。而它是如何工作的呢?

    客户端发起请求

      -》Nginx接收请求

        -》Nginx加载文件进行gzip打包压缩成*.gz

          -》返回给浏览器

            -》浏览器解压*.gz (应该是它干的,反正看不见)

    也就是说,每次请求,Nginx都会进行压缩返回、压缩返回、压缩返回、 将会导致浪费大量CPU。

    这么个大bug是谁设计的?如果请求量大,CPU会不会挂掉?//猜测

    当然,并不会,gizp打包压缩后会临时缓存,

    所以,能不消耗CPU就不消耗CPU。

    废话太多,步入正题。放大招!!

http   
gzip on; #开启或关闭gzip on off  
gzip_static on;#是否开启gzip静态资源
gzip_disable "msie6"; #不使用gzip IE6
gzip_min_length 100k; #gzip压缩最小文件大小,超出进行压缩(自行调节)
gzip_buffers 4 16k; #buffer 不用修改
gzip_comp_level 3; #压缩级别:1-10,数字越大压缩的越好,时间也越长
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 压缩文件类型
gzip_vary off; #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"

  重启nginx,访问服务器效果:变成459K了,耗时也少了不少

  所以开启gzip_static后。流程就会变成

//偷懒写法
if(*.gz)
return *.gz //懒得压缩直接扔文件
else
return gzip() //压缩再扔给浏览器

  nginx的gzip压缩力度从1-9 。如果开启过大,CPU会严重浪费,而webpack压缩gzip默认是9。因此,打包压缩gzip静态资源是很有必要的。

  补充一点:Gzip文件压缩,如果不安装那个插件,build是会报错的,详细如下:

  Gzip 文件压缩
  顺带分享一个很6的优化打包的方法,用起来也简单的很,只要下载一个插件,然后打开一个设置就好了。

  设置方法:

  这里其实是webpack自带的一个优化打包的方法,在打包的时候,每个js和css文件会压缩一个gz后缀的文件夹,浏览器如果支持g-zip,会自动查找有没有gz文件,找到了就加载gz,然后本地解压执行。

  打开这个配置会之后对整体的打包体积也就是dist文件夹并没有太大的变化。下图来看看他的压缩率以及对加载的提升,可以说是非常大且明显的,大家可以自己试一下就知道多好用了。

相关阅读:
Linux磁盘分区MBR分区
win10 1809磁盘占用总是100%
LINUX系统的7种运行级别
【工作环境】公司主域控硬盘损坏后的维修步骤
程序员的一些人生感悟
dispatch_get_main_queue 的同步异步问题
虚拟机VirtualBox中Ubuntu无法全屏解决方法
十大报错、报异常、跑不起来原因
关于scrollbarfacecolor只支持ie的解决方法
一个严肃的面试经验
原文地址:https://www.cnblogs.com/goloving/p/9170269.html
最新文章
vue 中$index $key 已经移除了
Sublime Text3自动保存的功能(失去焦点自动保存)
创建git密钥的时候提示 too many arguments
pc端有弹出层 并有滚动的时候遇到的问题以及解决
WAMP 403 Forbidden禁止访问,别的电脑访问不了;
遇到一张jpg的图片打不开,ps打不开,fireworks,打不开,ie8浏览器上显示不了,其他的浏览器没问题
实例构造器和类(引用类型)
静态工厂、工厂方法、抽象工厂
常量和字段
BADIs 概览
热门文章
BADIs 实现&小例
BADIs 查找
BADIs 实现原理
BADIs Filter Dependent/Multiple Use
CentOS7 搭建AmbariServer,安装Hadoop集群(一)
Centos 7部署大众点评CAT(一)——单服务器部署
linux内存随笔
sudo日志审计
man帮助命令
MBR和GPT分区学习
Copyright © 2011-2022 走看看
参考技术A 原因是我们在vue打包的过程中打包了一些没有用的东西,造成数据量过大使得页面加载速度超级慢的原因,最常见的页面加载速度就就 看板,这种页面。

什么时候重启而不重新加载 Nginx?

【中文标题】什么时候重启而不重新加载 Nginx?【英文标题】:When to restart and not reload Nginx? 【发布时间】:2012-11-11 14:31:19 【问题描述】:

什么时候需要重启nginx,reload就不行了? 如果使用像passenger 这样的扩展名会有什么不同吗?

如果服务消耗太多内存,是否应该重新启动服务。重启 Nginx 的任何其他原因,尤其是在扩展或 Nginx 核心配置中的配置更改之后?

在进行配置更改后,可以通过 binary 本身或 Ubuntu 上的 init.d 脚本“/etc/init.d/nginx -h”重新启动或重新加载 nginx。应该首选哪种方法?

【问题讨论】:

我不明白你的最后一段。这是一个问题吗? 【参考方案1】:

重新加载 nginx 比重新启动更安全,因为在终止旧进程之前,会解析新的配置文件,如果有任何问题,整个进程都会中止。

另一方面,当你重新启动 nginx 时,你可能会遇到由于语法错误而导致 nginx 停止并且不会重新启动的情况。

重新加载会终止旧进程,因此无论如何都应该清除任何内存泄漏。

【讨论】:

像modrails.com/documentation/Users%20guide%20Nginx.html 这样的 ngixn 扩展会有什么不同吗? 嗯,当使用乘客时,通常更明智的做法是重新启动应用程序服务器而不是 Web 服务器(在这种情况下,通过触摸 tmp/restart.txt 文件),但除此之外它应该完全一样。 如果我在nginx -t 之前检查语法怎么办?那有什么区别呢? 来自 nginx 指南:一旦主进程接收到重新加载配置的信号,它会检查新配置文件的语法有效性并尝试应用其中提供的配置。如果这是成功的,主进程启动新的工作进程并向旧的工作进程发送消息,请求它们关闭。否则,主进程将回滚更改并继续使用旧配置。【参考方案2】:

我遇到过需要重新启动 nginx 才能让 listen 指令启动新 IP 地址的情况。

【讨论】:

我刚才也有同样的经历……我快疯了,直到我想通了!!【参考方案3】:

Ztyx 是对的——在某些情况下需要在更改监听指令时重新启动。

使用1.6.x,更改监听IP地址时可以重新加载,但从“*:80”监听到IP地址“x.x.x.x:80”时需要重新加载。

我只用 IPv4 确认了这一点,IPv6 的行为可能类似。

【讨论】:

以上是关于vue加载nginx内存狂涨不加载的主要内容,如果未能解决你的问题,请参考以下文章

前端请求的js,css只加载一部分就断开连接, 静态文件加载不全

keepalived怎么重新加载配置文件

记录一次vue 访问空白的排错

vue项目首屏加载优化实战

nginx 网页加载

VUE项目中图片加载过大处理方式-渐进式方式-懒加载方式--附源码