使用nginx缓存GZIPed内容

使用nginx缓存GZIPed内容,nginx,Nginx,我想知道nginx是可以缓存gzip内容,还是一直都可以gzip文件 所谓“保留在缓存中”,我指的是服务器端内存或磁盘中的内容(没有浏览器缓存) 因为我看到了静态压缩(启用了sendfile)和使用nginx gzip模块(无法使用sendfile)之间的巨大区别。据我所知,nginx不会将gzip内容保存在内存中-这样管理缓存在大多数情况下可能会使它变得更慢、更复杂,并且无法帮助99%的使用情况,因为gzip的开销通常很低 我建议改为使用-如果启用它,Nginx将查找以附加.gz结尾的请求文件

我想知道nginx是可以缓存gzip内容,还是一直都可以gzip文件

所谓“保留在缓存中”,我指的是服务器端内存或磁盘中的内容(没有浏览器缓存)


因为我看到了静态压缩(启用了
sendfile
)和使用nginx gzip模块(无法使用
sendfile
)之间的巨大区别。

据我所知,nginx不会将gzip内容保存在内存中-这样管理缓存在大多数情况下可能会使它变得更慢、更复杂,并且无法帮助99%的使用情况,因为gzip的开销通常很低


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

缓存是否必须使用nginx?你可以试试nuster,我也这么认为,它可以缓存gziped内容,但我想知道为什么这么多Nginx配置示例都没有提到这一点。尤其是那些混合了
sendfile
gzip
的公司。我认为他们没有提到这一点,因为Nginx通常对它所做的事情非常明确——它不尝试猜测,它尝试快速完成所有事情,因此它从不在幕后做任何额外的事情。这通常让人很容易理解,因为你不会因为意外行为而措手不及。较新版本的Nginx有很多显式缓存特性,但缓存总是很难(缓存什么、多长时间、如何找出是否发生了变化)并且有开销。无论如何,要让Nginx变慢是很困难的:即使是“未优化的”大多数东西也运行得很好。如果启用
sendfile
gzip
,sendfile将无法工作。这是不明确的。