我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js服务器开启Gzip压缩教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js服务器开启Gzip压缩教程

Gzip是什么

复制大神们的解释吧:

GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的.

Gzip压缩率

举个例子,通过webpack打包后的js文件比较大,虽然我们可以利用chunk功能将文件分开混淆打包,但是总体积还是不小;这时候看看利用gzip压缩的效果:

查看图片

启用Gzip前

查看图片

启用Gzip后

对比其中三个文件前后压缩大小:

文本类文件:

iview.min.js: 429kb -> 109kb,压缩比74.6% base.min.js: 309kb -> 81.7kb,压缩比73.56% style.min.css: 207kb -> 30.9kb,压缩比85%

图片:

图片1: 63.2kb -> 63.2kb,压缩比0%?

我们看到文本类文件的压缩效果非常显著,但是图片体积没变。看一下文本类的http响应头是有gzip压缩过:

查看图片

而图片的没有:

查看图片

这是因为一般对于图片(png,jpg等)使用gzip的效果不好甚至恰得其反,所以一般都默认对图片不进行gzip压缩。

node.js启用gzip

下面说一下node的express框架如何使用gzip:

1.安装一个compression依赖:

npm install compression

2.调用:


var compression = require('compression')
var app = express();

//尽量在其他中间件前使用compression
app.use(compression());

基本的使用就是这样就ok了,另外如果想只对某些请求使用此功能,可以使用它的过滤方法:


app.use(compression({filter: shouldCompress}))

function shouldCompress (req, res) {
 if (req.headers['x-no-compression']) {
  // 这里就过滤掉了请求头包含'x-no-compression'
  return false
 }

 return compression.filter(req, res)
}

其他的功能请参考compression的文档。

另外附上nginx的配置


#on为启用,off为关闭
gzip on;

#设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。
gzip_min_length 1k;

#获取多少内存用于缓存压缩结果,‘4 16k'表示以16k*4为单位获得
gzip_buffers 4 16k;

#gzip压缩比(1~9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值
gzip_comp_level 5;

#对特定的MIME类型生效,其中'text/html'被系统强制启用
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;

简单解释下参数

1) gzip

语法:gzip on/off
默认值:off
作用域:http, server, location
说明:开启或者关闭 gzip 模块,这里使用 on 表示启动

2) gzip_min_length

语法:gzip_min_length length
默认值:gzip_min_length 0
作用域:http, server, location
说明:设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。|

3) gzip_buffers

语法: gzip_buffers number size
默认值: gzip_buffers 4 4k/8k
作用域: http, server, location
说明:设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k 代表以 16k 为单位,按照原始数据大小以 16k 为单位的4倍申请内存。

4) gzip_comp_level

语法: gzip_comp_level 1..9
默认值: gzip_comp_level 1
作用域: http, server, location
说明:gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。这里设置为 5。
5) gzip_types

语法: gzip_types mime-type [mime-type ...]
默认值: gzip_types text/html
作用域: http, server, location
说明:匹配MIME类型进行压缩,(无论是否指定)"text/html" 类型总是会被压缩的。这里设置为 text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js服务器开启Gzip压缩教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js服务器开启Gzip压缩教程

Gzip是什么 复制大神们的解释吧: GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet
2022-06-04

服务器端如何开启GZIP压缩功能(Apache、IIS、Nginx)

目录Apache如何开启GZIP功能IIS如何开启GZIP功能Nginx如何开启GZIP功能我们知道做好负载均衡对网站的正常运行,用户体验相当重要。在负载均衡中有一个必须要做的事情就是给服务器开启GZIP压缩功能,对用户请求的页面进行压缩处
2022-06-05

php如何判断服务器是否支持gzip压缩

本篇内容主要讲解“php如何判断服务器是否支持gzip压缩”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何判断服务器是否支持gzip压缩”吧!开GZIP有什么好处?Gzip功能是一种压缩
2023-06-20

使用php判断服务器是否支持Gzip压缩功能

开启Gzip是需要服务器支持的,在这里我们简单的使用php来判断服务器是否支持Gzip功能,具体如下,感兴趣的朋友可以参考下
2022-11-15

腾讯云服务器端口开启教程

腾讯云服务器端口是一个计算机软件,用于访问服务器上的资源。为了避免被封禁,需要开启腾讯云服务器端口。在腾讯云服务器软件的菜单栏或工具条上,会有“端口”选项卡。点击选项卡中的“开启端口”按钮,可以开启服务器端口。以下是详细的教程步骤:打开腾讯云服务器软件,进入主界面。在工具条中找到“端口”选项卡,可以看到“开启端口”按钮,按下该按钮会弹出对话框,提示选择一个端口号。在默认情况下,服务器端
2023-10-26

阿里云服务器远程桌面开启教程

1.登录阿里云服务器控制台首先,打开浏览器,输入阿里云官方网址(https://www.aliyun.com/),点击右上角的"登录"按钮,输入您的账号和密码,然后点击"登录"。2.选择云服务器实例在控制台首页,点击左侧导航栏的"云服务器ECS",然后选择您要开启远程桌面的服务器实例。3.配置安全组规则在实例详情页面,
2023-10-27

腾讯云服务器开传奇教程怎么开启

1.购买腾讯云服务器首先,你需要购买一台腾讯云服务器。在购买时,你需要选择适合你的业务需求的服务器类型和配置。建议选择操作系统为CentOS7.264位版本。2.安装必要的软件在服务器上安装必要的软件,包括MySQL数据库、Apache服务器和PHP解释器。你可以使用以下命令来安装这些软件:yuminstallmysqlmysql-serverhttpdphpphp-mysql3.
2023-10-26

腾讯云服务器端口开启教程在哪

首先,需要在腾讯云服务器上找到目标云服务器。如果目标服务器没有提供可用的服务器列表,则需要创建一个。在创建过程中,可以选择“云服务器名称”,并在“控制台”中输入端口号和密码。在完成创建后,可以在控制台中查看该服务器的可用IP地址和端口号。接下来,需要确认是否已经配置了端口。可以通过“端口管理器”或“端口列表”来查看当前端口状态。如果端口已启用,则说明配置成功,可以进行相关操作。接下来,需要将需要开...
2023-10-27

LNMP部署及HTTPS服务开启教程

LNMP是什么 : linux+Nginx+mysql+(php-fpm,php-mysql) 即在Linux操作系统上Nginx+Mysql+Php的网站服务架构。
2022-06-04

阿里云开启端口服务器设置教程

这篇文章将详细讲解如何在阿里云上开启端口服务器。无论是对网络编程新手还是经验丰富的开发者,这篇文章都将提供有用的信息和指导。一、什么是端口服务器端口服务器是指在特定的端口上提供服务的服务器。例如,Web服务器、邮件服务器、FTP服务器等都是通过特定的端口提供服务的。在运行这些服务器时,需要将这些端口设置为开放状态
阿里云开启端口服务器设置教程
2023-11-03

云服务器开服教程

首先,需要在云服务器的网站上下载并安装“云服务器管理工具”,以便管理您的数据。打开“云服务器管理工具”后,首先可以选择创建一个新的云服务器。选择“创建本地计算机”,然后在弹出窗口中输入“服务器ID”和“用户名”,以及你要上传的服务器文件的路径(默认路径在C盘中)。接下来,你需要选择服务器所需的虚拟主机。虚拟主机通常是在云服务器的托管目录中选择你的服务器所需的虚拟主机。然后选择你要分配给该
2023-10-26

阿里云服务器安装Node.js教程

Node.js是一种基于ChromeV8引擎的JavaScript运行环境,它使用事件驱动、非阻塞I/O模型,使其轻量且高效,广泛应用于Web开发。在阿里云服务器上安装Node.js,可以使你的服务器具备更丰富的功能和更强的处理能力。一、准备工作在开始安装Node.js之前,我们需要确保阿里云服务器已经安装了Py
阿里云服务器安装Node.js教程
2023-11-05

阿里云服务器开启端口的详细教程

阿里云服务器是企业级云服务器产品,拥有丰富的安全性能和灵活的配置选项。本文将详细讲解如何在阿里云服务器上开启端口。在阿里云服务器上开启端口是非常常见的操作,因为很多应用和服务都需要通过端口来接收和发送数据。这篇文章将为你提供详细的步骤和教程,让你轻松开启端口。步骤一:登录阿里云服务器首先,你需要登录你的阿里云服务
阿里云服务器开启端口的详细教程
2023-12-10

Win7系统开启Telnet服务图文教程

Telnet服务是远程登录的所使用到的一个标准协议,在服务器管理和网络管理中经常会用到通过Telnet服务连接编程客栈到服务器,在xp系统中该服务是自动开启的,然而在JGijKOSUwin7系统中它却是关闭的,这样一来我们就无法使用远程登录
2023-06-07

WinXP开启Computer Browser服务的教程详解

  当我们说到Computer Browser,应该很多用户都非常的了解,是系统中的一项服务,当我们在操作电脑中关闭了它,那么可能就会导致不能共享,所以就需要用户开启它,不过在WinXP系统中怎样开启Computer Browser服务的
2023-05-22

阿里云服务器启动教程

阿里云服务器是一种基于云计算技术的虚拟服务器,提供了强大的计算和存储能力,适用于各种应用场景。在使用阿里云服务器之前,需要了解如何启动服务器,本文将详细介绍阿里云服务器启动的方法。正文:第一步:登录阿里云控制台首先,打开浏览器,访问阿里云官方网站,点击右上角的"登录"按钮,输入您的账号和密码,成功登录后进入阿里云
阿里云服务器启动教程
2023-12-30

android开发教程之开机启动服务service示例

个例子实现的功能是:1,安装程序后看的一个Activity程序界面,里面有个按钮,点击按钮就会启动一个Service服务,此时在设置程序管理里面会看的有个Activity和一个Service服务运行2,如果手机关机重启,会触发你的程序里面的
2022-06-06

教你快速搭建Node.Js服务器的方法教程

前言Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,也可以理解为服务器端运行的 JavaScript。JS 作为一门编程语言,是运行在称为 JS 运行时的虚拟机中的,而在 I/O 功能上,JS 更多依赖于宿主环境
2022-06-04

编程热搜

目录