untar_file
在 NGINX 中,`untar_file` 指令指定应从 tar 归档中提取的文件。
NGINX HTTP Untar Module
·
httpserverlocation
语法untar_file string;
默认值none
上下文http, server, location
参数1
说明
untar_file 指令与 untar_archive 指令配合使用,以便直接从 tar 归档中提取并提供静态内容。该指令的主要功能是指定应从由 untar_archive 定义的 tar 归档中提取的文件路径。
在 NGINX 的上下文中,该指令使用复杂值,允许动态解析文件名,文件名可以基于客户端请求或其他变量构建。这种灵活性使其适用于多个文件可能位于同一归档中且文件选择由传入请求决定的场景。一旦指定了文件,就会读取关联的归档,并将所需内容直接提供给客户端,而无需创建任何临时文件,从而通过使用零拷贝方法优化性能。
untar_file 指令可在指定的上下文 (http, server, location) 中无缝工作,使开发者能够根据服务器结构和应用设计按需配置。必须在使用 untar_file 之前定义 untar_archive,否则会出现错误,提示无法找到或访问指定的归档。
配置示例
location ~ ^/(.+?\.tar)/(.*)$ {
untar_archive "$document_root/$1";
untar_file "$2";
untar;
}⚠
确保 untar_archive 在 untar_file 之前定义,否则将无法定位归档文件。
⚠
该指令仅支持 GET 和 HEAD 请求,其他方法将不起作用。
⚠
注意用户提供的值中可能存在文件路径遍历,这可能导致安全漏洞。