untar_archive

指令 `untar_archive` 指定在 NGINX 内用于提供内容的 tar 存档。

语法untar_archive string;
默认值none
上下文http, server, location
参数1

说明

untar_archive 指令是 NGINX HTTP Untar Module 的一部分,该模块允许用户直接从 tar 存档提供静态文件内容。通过使用此指令,可以指定 NGINX 在响应对存档内文件的请求时所参考的 tar 存档名称。此指令支持多种上下文,包括 httpserverlocation,从而根据服务器配置对存档内容的访问提供精细控制。

当调用 untar_archive 指令时,它期望一个字符串参数,表示 tar 存档的路径。该模块利用 zero-copy 技术直接从存档提供文件而不在磁盘上创建临时文件,这可提升性能并将文件传输延迟降至最低。应使用相应的 untar_file 指令来指定要从该存档中解压并提供的单个文件。这些指令之间的配合使存档内容能无缝集成到 NGINX 的服务流程中,减少从压缩或存档源检索文件时通常会产生的开销。

使用 untar_archive 指令的一个关键方面是它与缓存机制的兼容性,缓存可通过减少在文件请求过程中反复扫描存档的需要来提升性能。然而,由于该模块目前仅支持基本的 tar 格式操作,因此存在一些限制,例如不支持列出存档条目或处理更复杂的 tar 特性(如 symlinks)。因此,在提供高效静态内容访问的同时,用户在设计配置时应认真考虑这些限制。

配置示例

location ~ ^/(.+?\.tar)/(.*)$ {
    untar_archive "$document_root/$1";
    untar_file "$2";
    untar;
}

确保指定的 tar 归档对 NGINX 用户可访问且可读取。

有效路径不应包含意外的尾随斜杠,这可能导致文件名被误解。

此模块不支持复杂的 tar 功能,比如符号链接或列出条目,可能会导致意外行为。

← 返回所有指令