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

fancyindex: Модуль Fancy Index для NGINX

Установка на Debian/Ubuntu

Эти документы относятся к APT пакету nginx-module-fancyindex, предоставляемому репозиторием GetPageSpeed Extras.

  1. Настройте репозиторий APT, как описано в настройке репозитория APT.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-fancyindex
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия           | Компонент   | Архитектуры     |
|-------------|-------------------|-------------|-----------------|
| debian      | bookworm          | main        | amd64, arm64    |
| debian      | bookworm-mainline | main        | amd64, arm64    |
| debian      | trixie            | main        | amd64, arm64    |
| debian      | trixie-mainline   | main        | amd64, arm64    |
| ubuntu      | focal             | main        | amd64, arm64    |
| ubuntu      | focal-mainline    | main        | amd64, arm64    |
| ubuntu      | jammy             | main        | amd64, arm64    |
| ubuntu      | jammy-mainline    | main        | amd64, arm64    |
| ubuntu      | noble             | main        | amd64, arm64    |
| ubuntu      | noble-mainline    | main        | amd64, arm64    |

Модуль Fancy Index позволяет генерировать списки файлов, так же как это делает встроенный модуль autoindex, но с добавлением стиля. Это возможно, потому что модуль позволяет определенный уровень настройки сгенерированного контента:

  • Пользовательские заголовки. Локальные или удаленные.
  • Пользовательские подвала. Локальные или удаленные.
  • Добавьте свои собственные правила CSS.
  • Возможность сортировки элементов по имени (по умолчанию), времени изменения или размеру; как в порядке возрастания (по умолчанию), так и в порядке убывания.

Этот модуль предназначен для работы с Nginx, высокопроизводительным открытым веб-сервером, написанным Игорем Сысоевым.

Пример

Вы можете протестировать стандартный встроенный стиль, добавив следующие строки в раздел server в вашем файле конфигурации Nginx:

location / {
  fancyindex on;              # Включить красивые индексы.
  fancyindex_exact_size off;  # Выводить размеры файлов в удобочитаемом формате.
}

Темы

Следующие темы демонстрируют уровень настройки, который можно добиться с помощью модуля:

  • Тема от @TheInsomniac. Использует пользовательский заголовок и подвал.
  • Тема от @Naereen. Использует пользовательский заголовок и подвал, заголовок включает поле поиска для фильтрации по имени файла с использованием JavaScript.
  • Тема от @fraoustin. Адаптивная тема, использующая элементы Material Design.
  • Тема от @alehaa. Простой, плоский тема на основе Bootstrap 4 и FontAwesome.

Директивы

fancyindex

Синтаксис
fancyindex [on | off]

По умолчанию
fancyindex off

Контекст
http, server, location

Описание
Включает или отключает красивые индексы директорий.

fancyindex_default_sort

Синтаксис
fancyindex_default_sort [name | size | date | name_desc | size_desc | date_desc]

По умолчанию
fancyindex_default_sort name

Контекст
http, server, location

Описание
Определяет критерий сортировки по умолчанию.

fancyindex_directories_first

Синтаксис
fancyindex_directories_first [on | off]

По умолчанию
fancyindex_directories_first on

Контекст
http, server, location

Описание
Если включено (по умолчанию), группирует директории вместе и сортирует их перед всеми обычными файлами. Если отключено, директории сортируются вместе с файлами.

fancyindex_css_href

Синтаксис
fancyindex_css_href uri

По умолчанию
fancyindex_css_href ""

Контекст
http, server, location

Описание
Позволяет вставить ссылку на CSS таблицу стилей в сгенерированные списки. Параметр uri будет вставлен без изменений в HTML тег <link>. Ссылка вставляется после встроенных CSS правил, так что вы можете переопределить стили по умолчанию.

fancyindex_exact_size

Синтаксис
fancyindex_exact_size [on | off]

По умолчанию
fancyindex_exact_size on

Контекст
http, server, location

Описание
Определяет, как представлять размеры файлов в списке директорий; либо точно, либо округляя до килобайта, мегабайта и гигабайта.

fancyindex_name_length

Синтаксис
fancyindex_name_length length

По умолчанию
fancyindex_name_length 50

Контекст
http, server, location

Описание
Определяет максимальную длину имени файла в байтах.

Синтаксис
fancyindex_footer path [subrequest | local]

По умолчанию
fancyindex_footer ""

Контекст
http, server, location

Описание
Указывает, какой файл должен быть вставлен в подвал списков директорий. Если установлено в пустую строку, будет отправлен стандартный подвал, предоставляемый модулем. Необязательный параметр указывает, должна ли path интерпретироваться как URI для загрузки с помощью subrequest (по умолчанию) или относится к local файлу.

[!NOTE] Использование этой директивы требует ngx_http_addition_module, встроенного в Nginx.

[!WARNING] При вставке пользовательского заголовка/подула будет выполнен подзапрос, поэтому потенциально любой URL может быть использованКак источник для них. Хотя это будет работать с внешними URL, поддерживается только использование внутренних. Внешние URL совершенно не тестировались, и их использование приведет к блокировке Nginx, пока не завершится подзапрос. Если вы считаете, что внешний заголовок/подвал необходимы для вас, пожалуйста, сообщите мне.

fancyindex_header

Синтаксис
fancyindex_header path [subrequest | local]

По умолчанию
fancyindex_header ""

Контекст
http, server, location

Описание
Указывает, какой файл должен быть вставлен в заголовок списков директорий. Если установлено в пустую строку, будет отправлен стандартный заголовок, предоставляемый модулем. Необязательный параметр указывает, должна ли path интерпретироваться как URI для загрузки с помощью subrequest (по умолчанию) или относится к local файлу.

[!NOTE] Использование этой директивы требует ngx_http_addition_module, встроенного в Nginx.

fancyindex_show_path

Синтаксис
fancyindex_show_path [on | off]

По умолчанию
fancyindex_show_path on

Контекст
http, server, location

Описание
Определяет, выводить ли путь и закрывающий тег \</h1> после заголовка или нет. Это полезно, когда вы хотите обработать отображение пути с помощью PHP-скрипта, например.

[!WARNING] Эта директива может быть отключена только если предоставлен пользовательский заголовок с помощью fancyindex_header.

fancyindex_show_dotfiles \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~~ :Синтаксис: fancyindex_show_dotfiles [on | off] :По умолчанию: fancyindex_show_dotfiles off :Контекст: http, server, location :Описание: Показывать ли файлы, которые начинаются с точки. Обычная практика — скрывать их.

fancyindex_ignore

Синтаксис
fancyindex_ignore string1 [string2 [... stringN]]

По умолчанию
Нет по умолчанию.

Контекст
http, server, location

Описание
Указывает список имен файлов, которые не будут показаны в сгенерированных списках. Если Nginx был собран с поддержкой PCRE, строки интерпретируются как регулярные выражения.

Синтаксис
fancyindex_hide_symlinks [on | off]

По умолчанию
fancyindex_hide_symlinks off

Контекст
http, server, location

Описание
При включении сгенерированные списки не будут содержать символических ссылок.

fancyindex_hide_parent_dir \~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~~ :Синтаксис: fancyindex_hide_parent_dir [on | off] :По умолчанию: fancyindex_hide_parent_dir off :Контекст: http, server, location :Описание: При включении не будет показан родительский каталог.

fancyindex_localtime

Синтаксис
fancyindex_localtime [on | off]

По умолчанию
fancyindex_localtime off

Контекст
http, server, location

Описание
Включает отображение времени файлов в местном времени. По умолчанию «off» (GMT время).

fancyindex_time_format

Синтаксис
fancyindex_time_format string

По умолчанию
fancyindex_time_format "%Y-%b-%d %H:%M"

Контекст
http, server, location

Описание
Строка формата, используемая для отметок времени. Спецификаторы формата являются подмножеством поддерживаемых функцией strftime, и поведение не зависит от локали (например, названия дней и месяцев всегда на английском). Поддерживаемые форматы:

  • %a: Сокращенное название дня недели.
  • %A: Полное название дня недели.
  • %b: Сокращенное название месяца.
  • %B: Полное название месяца.
  • %d: День месяца в десятичном формате (диапазон 01 до 31).
  • %e: Как %d, день месяца в десятичном формате, но ведущий ноль заменяется пробелом.
  • %F: Эквивалентно %Y-%m-%d (формат даты ISO 8601).
  • %H: Час в десятичном формате с использованием 24-часового формата (диапазон 00 до 23).
  • %I: Час в десятичном формате с использованием 12-часового формата (диапазон 01 до 12).
  • %k: Час (24-часовой формат) в десятичном формате (диапазон 0 до 23); однозначные цифры предшествуют пробелом.
  • %l: Час (12-часовой формат) в десятичном формате (диапазон 1 до 12); однозначные цифры предшествуют пробелом.
  • %m: Месяц в десятичном формате (диапазон 01 до 12).
  • %M: Минута в десятичном формате (диапазон 00 до 59).
  • %p: Либо "AM", либо "PM" в зависимости от данного значения времени.
  • %P: Как %p, но в нижнем регистре: "am" или "pm".
  • %r: Время в формате a.m. или p.m. Эквивалентно %I:%M:%S %p.
  • %R: Время в 24-часовом формате (%H:%M).
  • %S: Секунда в десятичном формате (диапазон 00 до 60).
  • %T: Время в 24-часовом формате (%H:%M:%S).
  • %u: День недели в десятичном формате, диапазон 1 до 7, понедельник — 1.
  • %w: День недели в десятичном формате, диапазон 0 до 6, понедельник — 0.
  • %y: Год в десятичном формате без века (диапазон 00 до 99).
  • %Y: Год в десятичном формате, включая век.