Nginx使用Gzip压缩加速访问

Nginx作为一款性能非常高的Web服务器,广泛地应用于各大网站的后台。博主的毕设研究项目也使用了Nginx做反向代理,但是网站的首页访问速度非常慢,因此需要进一步开发Nginx的功能,于是就有了本文利用Gzip模块加速了。

Nginx配置

使用Gzip压缩页面的时候,需要在http配置区域配置。例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
http {
# 添加Gzip压缩功能
gzip on;
gzip_min_length 1k;
gzip_buffers 40 4k;
gzip_comp_level 6;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/json;
gzip_vary on;
gzip_disable msie6;

# 后面还有很多配置,在这里就省略了
}

配置项解释

  • gzip on;这个主要是开启gzip,没什么好说的。
  • gzip_min_length 1k;这个主要是定义需要被压缩文件的最小长度,这里定义的是1k,当然,也可以写成1024
  • gzip_buffers 40 4k;这里第一个数表示缓冲的数量,第二个表示每一个缓冲区的大小。
  • gzip_comp_level 6;关于这个压缩级别,一般是1-9,去Stackoverflow上找了一下大神们的测试,发现4-6级别的效果是最理想的(压缩程度和压缩时间综合)。
  • gzip_types text/plain ... ;这个就是指定需要被压缩的文件类型,对照MIME类型就可以了。
  • gzip_vary on;开启后会在头里面加上Vary: Accept-Encoding,主要是给代理服务器开启的。
  • gzip_disable msie6;这里表示对IE6及以下浏览器不采用压缩,主要是这些浏览器也不支持这些特性。msie6是对IE6以及IE6以下浏览器的一个简称。

查看页面请求

访问https://acs.qinjiangbo.com,打开审查元素,查看网络请求就可以看到了:

总结

通过在Nginx上开启Gzip压缩,页面的访问速度提升了约30%,还是很不错的,以前差不多是1.03s左右,现在差不多600~700ms。 如果你的网站静态资源非常多的话,还可以考虑使用Nginx的缓存,这样速度更快!

分享到