NGINX压缩和解压缩

本文概述

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

启用压缩

要启用压缩, 请在gzip指令中添加on参数:

gzip on;

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

gzip_types text/plain application/xml;

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

gzip_min_length 1000;

启用减压

某些客户端不使用gzip编码方法处理响应。同时, 可能需要动态存储压缩数据或响应并将其存储在缓存中。为了成功服务于接受和不接受压缩数据的两个客户端, NGINX可以在将数据发送到后一种类型的客户端时即时对其进行解压缩。

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

location /storage/ {
    gunzip on;
    ...
}

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

server {
    gzip on;
    gzip_min_length 1000;
    gunzip on;
    ...
}

注意:该指令在单独的模块中定义, 默认情况下可能未包含在开源NGINX构建中。

发送压缩文件

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

location / {
    gzip_static on;
}

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


微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?