NGINX 压缩和解压缩

2024 年 8 月 29 日 | 阅读 2 分钟

压缩过程可以减少传输数据的大小。但是,由于压缩发生在运行时,它也可能包含相当大的处理开销,这可能会对性能产生负面影响。Nginx 在将响应发送到客户端之前执行压缩,但不会对已经压缩的响应进行双重压缩。

启用压缩

要启用压缩,请添加带有 **on** 参数的 gzip 指令

默认情况下,Nginx 仅压缩具有 text/html (MIME 类型)的响应。要压缩具有其他 MIME 类型的响应,请添加 gzip_types 指令并列出其他类型。

我们可以定义要压缩的响应的最小长度,使用 gzip_min_length 指令。默认值为 20 字节。

启用解压缩

某些客户端不处理具有 gzip 编码方法的响应。 同时,可能希望动态存储压缩的数据或响应,并将其存储在缓存中。 为了成功地为接受和不接受压缩数据的客户端提供服务,NGINX 可以在将数据发送到后一种类型的客户端时动态地解压缩数据。

要启用运行时解压缩,请使用 gunzip 指令。

gunzip 指令可以在与 gzip 指令相同的上下文中定义

注意: 此指令是在一个单独的模块中定义的,默认情况下可能不包含在开源 NGINX 版本中。

发送压缩文件

要将压缩文件而不是常规文件发送到客户端,请将 gzip_static 指令在适当的上下文中设置为 on。

在上面的示例中,为了服务 /path/to/file 的请求,NGINX 尝试查找并发送文件 * /path/to/file.gz*。 如果文件不存在,或者客户端不支持 gzip,则 NGINX 会发送未压缩的文件。


下一个主题NGINX 动态模块