0%

Gzip压缩

Gzip压缩

通过gzip相关指令可以配置Gzip压缩,对响应数据进行在线实时压缩。

相关配置参数说明:

  • gzip: on; # 开启或关闭gzip功能,默认为off
  • gzip_buffers: 16 8K; # 配置Gzip压缩文件时使用的缓存空间大小,语法结构为gzip_buffers number size;number表示需要向服务器申请的缓存空间的个数;size表示指定每个缓存空间的大小,默认number*size=128K
  • gzip_comp_level: 9; # 压缩级别,压缩程度越高,压缩效率最低,最费时间
  • gzip_min_length:# 配置最小压缩的数据大小,如果响应页面的大小大于该值,才开启Gzip功能(一些小文件会导致压缩后的大小比源文件还大),默认为20,建议设置为1k(1024)
  • gzip_http_version:1.0; # 配置只有高于指定版本的HTTP协议才能开启Gzip,默认为1.1, 目前绝大多数浏览器都支持Gzip自解压,一般采用默认值即可
  • gzip_proxied:any; # 设置是否对被代理服务器返回的数据进行压缩,默认为off
  • gzip_vary: on; # 开启压缩标记,开启后在响应头部添加 Vary: Accept-Encoding,默认为off
  • gzip_types:text/plain application/x-javascript text/css application/xml text/javascript; # 对指定类型的文档进行Gzip压缩
  • gzip_static:on; # 对于存在服务器上.gz作为后缀的文件,且客户端浏览器支持gzip压缩,就直接返回压缩后的数据

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#将访问的文件压缩传输 (减少文件资源大小,提高传输速度)
#当访问内容以gif或jpg结尾的资源时
location ~ .*\.(gif|jpg)$ {
gzip on; #开启
gzip_http_version 1.1; #服务器传输版本
gzip_comp_level 2; #压缩比,越高压缩越多,压缩越高可能会消耗服务器性能
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss image/jpeg image/gif image/png; #压缩文件类型
root /www/app/web; #对应目录(去该目录下寻找对应文件)
}

#直接访问已压缩文件
#当访问路径以download开头时,如www.baidu.com/download/test.img
#去/www/app/web目录下寻找test.img.gz文件,返回到前端时已是可以浏览的img文件
location ~ load^/download {
gzip_static on #开启;
tcp_nopush on;
root /www/app/web;
}