untar
`untar` 指令在响应 HTTP 请求时直接从 tar 存档中提取并提供文件。
NGINX HTTP Untar Module
·
location
语法untar;
默认值none
上下文location
参数none
说明
untar 指令是 NGINX HTTP Untar Module 的一部分,允许静态内容直接从 tar 存档提供,而无需临时解压到磁盘。该指令与另外两个指令配合使用:untar_archive(指定 tar 文件的位置)和 untar_file(指示要从 tar 存档中提供的具体文件)。当请求匹配使用 untar 指令定义的位置时,NGINX 会访问指定的 tar 存档,提取指定的文件,并直接从内存中将其提供给客户端,通过消除中间文件存储来优化性能。
untar 过程依赖于高效的缓存机制,允许 NGINX 存储有关存档内容的信息以加快后续访问请求。该模块主要支持标准文件和长文件名,并以 zero-copy 模式运行,最小化数据移动并最大化文件提供的吞吐量。然而,它仅限于处理 GET 和 HEAD HTTP 方法,不支持列出存档内容或处理符号链接等操作。用户应谨慎构建 NGINX 配置,确保正确使用 untar 指令,以避免从存档中提供非预期的文件。
配置示例
location ~ ^/(.+?\.tar)/(.*)$ {
untar_archive "$document_root/$1";
untar_file "$2";
untar;
}⚠
确保由 untar_archive 指定的 tar 文件可访问且格式正确。
⚠
请记住仅在与 untar_file 配合时使用有效的文件路径和名称,以避免出现意外结果。
⚠
请注意,仅支持某些文件类型;复杂的 tar 结构可能无法正确处理。