【发布时间】:2015-04-24 18:40:00
【问题描述】:
我正在使用 nginx 提供静态内容。我想同时支持Range requests 和gzip 压缩。
不幸的是,这两个功能在 nginx 中是not compatible。在我的配置中添加 gzip on; 会禁用范围请求。
假设我不能对所有内容进行 gzip,下一个最佳选择是为所有缺少 Range: 标头的请求启用 gzip。这可能吗?
【问题讨论】:
标签: nginx
我正在使用 nginx 提供静态内容。我想同时支持Range requests 和gzip 压缩。
不幸的是,这两个功能在 nginx 中是not compatible。在我的配置中添加 gzip on; 会禁用范围请求。
假设我不能对所有内容进行 gzip,下一个最佳选择是为所有缺少 Range: 标头的请求启用 gzip。这可能吗?
【问题讨论】:
标签: nginx
最简单的解决方案是在配置中的每个“gzip on”旁边添加这些行:
if ($http_range) {
gzip off;
}
尽管“如果”是邪恶的,但在这种情况下,替代方案会更糟。如果有的话。
【讨论】:
if 语句中。
Last-modified 标头和范围请求之间存在不良交互,因此我也必须禁用它们。 nginx 中的“if”有非常奇怪的行为。我已经更新了上一条评论中引用的要点。