使用 nginx 缓存 GZIP 内容

问题描述 投票:0回答:2

我想知道 nginx 是否可以缓存 gzip 压缩的内容,或者一直 gzip 文件?

“保留在缓存中”是指服务器端内存或磁盘中的某些内容(无浏览器缓存)。

因为我发现静态压缩(启用

sendfile
)和使用 nginx gzip 模块(无法与
sendfile
一起使用)之间存在巨大差异。

nginx
2个回答
10
投票

据我所知,Nginx 不会将 gzip 压缩的内容保留在内存中 - 在大多数情况下管理这样的缓存可能会使其变得更慢、更复杂,并且对 99% 的用例没有帮助,因为 gzip 的开销通常很低。

我建议使用

gzip_static
- 如果启用它,Nginx 会查找带有附加 .gz 结尾的请求文件并提供该文件,而不是 gzip 本身,因此如果有人请求 bigfile.png 并且 Nginx 会看到有 bigfile .png.gz 也是如此,它会将 .gz 文件作为 gzip 提供,并且本身不进行计算。我将其用于所有可以提前准备的资源(JS、CSS、图像、XML)。因为你只需要 gzip 一次,所以你也可以使用最高的压缩比。


0
投票

更全面的链接:

https://docs.nginx.com/nginx/admin-guide/web-server/compression/#sending-compressed-files

压缩与解压

启用压缩

代码

gzip on;
gzip_types text/plain application/xml;
gzip_min_length 1000;
gzip_proxied no-cache no-store private expired auth;

描述

为指定的 MIME 类型启用压缩,设置最小响应长度,并为代理请求配置压缩。

启用减压

代码

gunzip on;

描述

为不支持压缩数据的客户端启用运行时解压缩。

发送压缩文件

代码

gzip_static on;

描述

将文件的压缩版本而不是常规版本发送给客户端。

注意:

gzip_static
指令不启用即时压缩。用于发送预压缩的静态文件。

© www.soinside.com 2019 - 2024. All rights reserved.