fancyindex: Модуль Fancy Index для NGINX
Установка
Вы можете установить этот модуль в любом дистрибутиве на базе 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-fancyindex
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-fancyindex
Включите модуль, добавив следующее в начало файла /etc/nginx/nginx.conf:
load_module modules/ngx_http_fancyindex_module.so;
Этот документ описывает nginx-module-fancyindex v0.6.0, выпущенный 23 февраля 2026 года.
Модуль 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_case_sensitive
Синтаксис fancyindex_case_sensitive [on | off]
По умолчанию fancyindex_case_sensitive on
Контекст 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_footer
Синтаксис 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
Синтаксис 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: Год в виде десятичного числа с учетом века.
GitHub
Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-fancyindex.