本文概述
压缩过程减小了传输数据的大小。但是, 由于压缩是在运行时发生的, 因此压缩还可能包含相当大的处理开销, 这可能会对性能产生负面影响。 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发送未压缩的文件。