为 nginx 启用 gzip 压缩

nginx / gzip

最近考虑为博客启用 gzip 压缩,看会不会对加载有帮助,搜了一下,感觉没有很难, 但是现有的说明都忽略了一点,这里记录一下

1 环境

  • CentOS 7
  • 使用 yum 安装的 nginx 1.12.2

2 问题

很多文章都会说,找到 gzip 的配置区,这里就遇到了问题, 如果我的配置里完全没有 gzip 的配置或注释,那么 gzip 的配置要写在哪里呢?

3 解决

经过几轮的试错,我们终于找到 gzip 配置的位置:http,如果你阅读了 nginx 的说明档, gzip 可以配置在三个地方:http,server,location,本文中,我们在 http 中加入以下配置:

# gzip
gzip on;
gzip_min_length 1k;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";

重启 nginx,然后使用以下命令测试一下

# 注意换成你自己的地址
curl -H "Accept-Encoding: gzip" -I https://tricks.one

如果有看到以下字样,那么 gzip 就已经成功开启了

Content-Encoding: gzip

4 结论

其实挺明显,如果我们一开始就参考官方文档,那么我们可能不会遇到这个问题, 但是其实多数时间我们不得不承认,完整消化官方文档是一个很耗时的过程, 所以我们一般会去参考一些简易教程,但是有些简易教程又不见得适合我们,比如这次, 其实我也没有特别好的推荐,只能建议大家做好备份,自己摸索,多多锻炼自己的动手能力, 对于本文来说,如果你也不知道 gzip 的配置要放在哪里,你可以试试放在 http 区块内。