Перейти к содержанию

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, выпущенный 21 марта 2022 года.


Этот 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_file из untar_archive


Известные ограничения

  • поддерживаются только методы GET, HEAD
  • нет списка записей архива
  • поддержка базового формата tar (только обычные файлы: без символических ссылок, разреженных и т.д.)

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-untar.