untar_archive

Директива `untar_archive` указывает tar-архив, к которому следует обращаться для обслуживания содержимого в NGINX.

Синтаксисuntar_archive string;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

Директива untar_archive является частью NGINX HTTP Untar Module, который позволяет пользователям напрямую обслуживать статические файлы из tar-архивов. Используя эту директиву, вы указываете имя tar-архива, к которому NGINX будет обращаться при обработке запросов к файлам, находящимся в этом архиве. Данная директива поддерживается в различных контекстах, включая http, server и location, что позволяет тонко настраивать доступ к архивированному содержимому в зависимости от конфигурации сервера.

Когда вызывается директива untar_archive, ей передаётся один строковый аргумент — путь к tar-архиву. Модуль использует методы нулевого копирования для прямой выдачи файлов из архива без создания временных файлов на диске, что повышает производительность и снижает задержки при доставке файлов. Соответствующая директива untar_file должна использоваться для указания конкретного файла, который нужно извлечь и отдать из указанного архива. Взаимодействие этих директив обеспечивает бесшовную интеграцию архивированного содержимого в процесс обслуживания NGINX, снижая накладные расходы, обычно связанные с получением файлов из сжатых или архивных источников.

Одним из ключевых аспектов использования директивы untar_archive является её совместимость с механизмами кэширования, которые улучшают производительность за счёт уменьшения необходимости повторных сканирований архива при запросах файлов. Тем не менее, поскольку этот модуль в настоящее время поддерживает только базовые операции формата tar, существуют определённые ограничения, такие как отсутствие поддержки перечисления записей архива или обработки более сложных возможностей tar, например символических ссылок. Поэтому, обеспечивая эффективный доступ к статическому содержимому, пользователи должны внимательно учитывать эти ограничения при проектировании своих конфигураций.

Пример конфига

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

Убедитесь, что указанный tar-архив доступен и читается пользователем NGINX.

Корректные пути не должны содержать случайных завершающих слэшей, которые могут привести к неверной интерпретации имён файлов.

Этот модуль не поддерживает сложные возможности tar, такие как символические ссылки или листинг записей, что может привести к непредвиденному поведению.

← Ко всем директивам