layout: posttitle: Nginx gzip压缩静态文件
subtitle: Nginx gzip压缩静态文件
date: 2019-05-14
author: he xiaodong
header-img: img/default-post-bg.jpg
catalog: true
tags:
- PHP
- Nginx
- gzip
- 压缩静态文件

优化网站加载速度方案里有一条:压缩静态资源,其中可以使用 Nginx gzip 模块进行压缩,配置为:

  1. #启用gzip压缩的 nginx 配置
  2. gzip on;
  3. gzip_min_length 1k;
  4. gzip_buffers 4 16k;
  5. #gzip_http_version 1.0;
  6. gzip_comp_level 2;
  7. gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
  8. gzip_vary off;
  9. gzip_disable "MSIE [1-6]\.";

以上含义为:

gzip on 为启用 gzip 压缩

gzip_min_length 压缩大小的临界值,小于 1k 不压缩

gzip_buffers 设置 number 和 size 用于压缩的响应缓冲区。默认情况下,缓冲区大小等于一个内存页面。这是 4K 或 8K ,取决于平台。

gzip_comp_level 压缩级别,可选范围 1-9,越高则压缩质量越高,消耗 CPU 资源越高

gziptypes 压缩的内容类型,需要什么再加不要压缩图片_

gzip_vary 跟 Squid 等缓存服务有关,on 的话会在 Header 里增加 “Vary: Accept-Encoding”

gzip_disable 对某种指定的浏览器类型不启用压缩,M$ie6以下肯定不压缩了

注意点:图片不适用于压缩,因为压缩效率很低,压缩之后不会减少多少体积,同时压缩过程会非常消耗 CPU 资源,得不偿失,图片类有其他的处理方式

使用 Nginx 只是其中一种压缩静态资源的方式,除此之外,可以使用 gulp 等方式压缩前端资源,提前压缩,直接使用压缩后的资源,减少消耗。如果高流量访问的大型网站,直接静态资源 CDN 化是最好的选择,具体根据团队和项目情况来选择方案。

参考链接:Nginx gzip module文档

最后恰饭 阿里云全系列产品/短信包特惠购买 中小企业上云最佳选择 阿里云内部优惠券