[https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/][1] 中暗示,仅当 Cache Slicing 编译到 nginx 中时,nginx 才支持范围请求。
Ubuntu 20.04 nginx 是否支持范围请求?
答案1
我猜nginx-extras
包里nginx-full
应该有它(至少有它德比安)。
但你可以自己找出答案:
?sudo? nginx -V 2>&1 | tr " " "\n" | grep slice
顺便说一句,只有当您想支持动态(例如代理)内容中的范围请求时,才需要缓存切片。此外,它还用于拆分或以块的形式实现大响应的有效缓存,这些块由您在代理端控制。 对于对静态资源的简单范围请求(例如客户端访问 PDF 文件或档案),它完全不需要,nginx 可以毫无问题地
处理请求。Range: bytes=n-m
尝试一下这个来测试一下:
curl -v -r 0-1000 --HEAD 'http://example.com/download/some-file.pdf'
看看它是否会回答206 Partial Content
。
通过这种方式,您甚至可以在没有切片模块的情况下对任何动态内容执行此操作,例如使用 HTTP 重定向到某个下载位置中先前存储的文件,以整体方式在内部“缓存”您的文档。
并且ngx_http_slice_module
是部分缓存,例如将大型响应拆分为后端上游后面的几个小响应。