提供压缩内容 XOR 范围:字节与 nginx

Serve compressed content XOR range: bytes with nginx

我正在使用 nginx 提供静态内容。我想同时支持 Range requests 和 gzip 压缩。

不幸的是,这两个特性在 nginx 中是 not compatible。将 gzip on; 添加到我的配置中会禁用范围请求。

假设我不能 gzip 所有内容,下一个最佳选择是为所有缺少 Range: header 的请求启用 gzip。这可能吗?

最简单的解决方案是在配置中的每个 "gzip on" 旁边添加这些行:

if ($http_range) {
   gzip off;
}

尽管 "if" 是邪恶的,但在这种情况下,其他选择甚至更糟。如果有的话。