跳转至

untar: NGINX HTTP Untar 模块

安装

您可以在任何基于 RHEL 的发行版中安装此模块,包括但不限于:

  • RedHat Enterprise Linux 7, 8, 9 和 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 和 Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-untar
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-untar

通过在 /etc/nginx/nginx.conf 顶部添加以下内容来启用模块:

load_module modules/ngx_http_untar_module.so;

本文档描述了 nginx-module-untar v1.1,于 2022 年 3 月 21 日发布。


nginx 模块可以直接从 tar 存档中提供静态文件内容。 灵感来自 nginx-unzip-module

特性

  • 零拷贝:直接从存档文件输出内容(无临时文件)
  • 缓存解析的存档文件条目:减少存档扫描搜索时间
  • 支持的 tar 项类型:普通文件,长文件名数据

配置示例

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

模块指令


untar_archive string

上下文: http, server, location

指定 tar 存档名称。


untar_file string

上下文: http, server, location

指定要从 untar_archive 中提取的文件。


untar

上下文: location

untar_archive 中调用 untar_file 的解压。


已知限制

  • 仅支持 GET, HEAD 方法
  • 不支持存档条目列出
  • 基本 tar 格式支持(仅普通文件:不支持符号链接、稀疏等)

GitHub

您可以在 nginx-module-untar 的 GitHub 仓库 中找到此模块的其他配置提示和文档。