Nginx 压缩和解压
Nginx 压缩和解压
压缩过程减少了传输数据的大小。然而,由于压缩发生在运行时,它也可能包括相当大的处理开销,这会对性能产生负面影响。 Nginx 在向客户端发送响应之前执行压缩,但不会对已经压缩的响应进行双重压缩。
启用压缩
要启用压缩,请添加 gzip 指令on 参数:
默认情况下,Nginx 仅使用 text/html(MIME 类型)压缩响应。要使用其他 MIME 类型压缩响应,请添加 gzip_types 指令并列出其他类型。
gzip_types text/plain application/xml;
我们可以定义要压缩的响应的最小长度,使用 gzip_min_length 指令。默认为 20 字节。
启用解压缩
某些客户端不使用 gzip 编码方法处理响应。同时,可能需要动态存储压缩数据或响应并将它们存储在缓存中。为了成功地为接受和不接受压缩数据的客户端提供服务,Nginx 可以在将数据发送到后一种类型的客户端时即时解压缩数据。
要启用运行时解压缩,请使用 gunzip 指令。
>
location /storage/ {
gunzip on;
...
}
gunzip 指令可以在与 gzip 指令相同的上下文中定义:
server {
gzip on;
gzip_min_length 1000;
gunzip on;
...
}
注意: 该指令是在一个单独的模块中定义的,默认情况下,该模块可能不包含在开源 Nginx 构建中。
发送压缩文件
要将压缩文件而不是常规文件发送到客户端,请在适当的上下文中将 gzip_static 指令设置为 on .
location / {
gzip_static on;
}
在上面的例子中,为了服务,一个对/path/to/file的请求,Nginx试图找到并发送文件/path/to/file.gz。如果文件不存在,或者客户端不支持 gzip,Nginx 会发送未压缩的文件。