Node.js网站开启 gzip 压缩功能

Node.js网站开启 gzip 压缩功能简介Nginx 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器, 它因为稳定性、丰富的功能集

大家好,欢迎来到IT知识分享网。

简介

Nginx 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器, 它因为稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用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的配置

1, 编辑项目的nginx.conf

#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。

常用的静态 type 有,看自己需要压缩的情况而定:

text/html
text/plain
text/css
application/x-javascript
text/javascript
application/xml

2, Nginx 只需要 reload 一下即可

验证

Node.js网站开启 gzip 压缩功能

浏览器请求头如果包含gzip,则成功开启gzip

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/77523.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信