Nginx 是否将所有缓存的切片合并为一个文件,就像后端一样?

Nginx 是否将所有缓存的切片合并为一个文件,就像后端一样?

我正在使用 Nginxslice模块来填充大文件的缓存,如下所示https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/

以下是示例配置

location / {
    slice             1m;
    proxy_cache       cache;
    proxy_cache_key   $uri$is_args$args$slice_range;
    proxy_set_header  Range $slice_range;
    proxy_cache_valid 200 206 1h;
    proxy_pass        http://localhost:8000;
}

文章说:

NGINX 可以缓存此类范围请求,并使用缓存切片模块逐渐填充缓存,该模块将文件划分为较小的“切片”。每个范围请求都会选择覆盖请求范围的特定切片,如果此范围仍未缓存,则将其放入缓存中。对这些切片的所有其他请求都会从缓存中获取数据。

我的问题是,当从后端接收到文件的所有字节范围并且 Nginx 缓存了所有切片时会发生什么。Nginx 是否仍使用多个切片来处理请求,还是将所有切片合并成一个大文件(与后端中的文件相同),然后从大文件处理请求?

如我所见,缓存键是proxy_cache_key $uri$is_args$args$slice_range;。那么,这是否意味着即使 Nginx 获得了全部内容,但它仍会将这些切片分开,并使用这些切片来满足字节范围请求?

谢谢

相关内容