fancyindex: Módulo Fancy Index do NGINX
Instalação
Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:
- RedHat Enterprise Linux 7, 8, 9 e 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 e 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
Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:
load_module modules/ngx_http_fancyindex_module.so;
Este documento descreve o nginx-module-fancyindex v0.6.1 lançado em 01 de março de 2026.
Módulo Fancy Index do NGINX
O módulo Fancy Index possibilita a geração de listagens de arquivos, como faz o módulo embutido autoindex, mas adicionando um toque de estilo. Isso é possível porque o módulo permite um certo grau de personalização do conteúdo gerado:
- Cabeçalhos personalizados, locais ou armazenados remotamente.
- Rodapés personalizados, locais ou armazenados remotamente.
- Adicione suas próprias regras de estilo CSS.
- Permite escolher ordenar os elementos por nome (padrão), tempo de modificação ou tamanho; tanto em ordem crescente (padrão) quanto decrescente.
Este módulo foi projetado para funcionar com Nginx, um servidor web de alto desempenho e código aberto escrito por Igor Sysoev.
Requisitos
CentOS, RHEL, Fedora Linux
Para usuários do repositório oficial estável do Nginx, o repositório de pacotes extras com módulos dinâmicos está disponível e o fancyindex está incluído.
Instale a configuração do repositório e, em seguida, o pacote do módulo:
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install nginx-module-fancyindex
Em seguida, carregue o módulo em /etc/nginx/nginx.conf usando:
load_module "modules/ngx_http_fancyindex_module.so";
macOS
Os usuários podem instalar o Nginx no macOS com MacPorts; o fancyindex está incluído:
sudo port install nginx
Outras plataformas
Na maioria dos outros casos, você precisará dos fontes do Nginx. Qualquer versão a partir da série 0.8 deve funcionar.
Para usar as diretivas fancyindex_header_ e fancyindex_footer_, você também precisará do ngx_http_addition_module embutido no Nginx.
Compilação
-
Descompacte os fontes do Nginx:
$ gunzip -c nginx-?.?.?.tar.gz | tar -xvf - -
Descompacte os fontes do módulo de indexação fancy:
$ gunzip -c nginx-fancyindex-?.?.?.tar.gz | tar -xvf - -
Mude para o diretório que contém os fontes do Nginx, execute o script de configuração com as opções desejadas e tenha certeza de colocar uma flag
--add-moduleapontando para o diretório que contém os fontes do módulo de indexação fancy:$ cd nginx-?.?.? $ ./configure --add-module=../nginx-fancyindex-?.?.? \ [--with-http_addition_module] [opções extras desejadas]Desde a versão 0.4.0, o módulo também pode ser construído como um módulo dinâmico, usando
--add-dynamic-module=…em vez deload_module "modules/ngx_http_fancyindex_module.so";no arquivo de configuração. -
Compile e instale o software:
$ makeE então, como
root:# make install -
Configure o Nginx usando as diretivas de configuração dos módulos.
Exemplo
Você pode testar o estilo padrão embutido adicionando as seguintes linhas em uma seção server no seu arquivo de configuração do Nginx:
location / {
fancyindex on; # Ativa índices fancy.
fancyindex_exact_size off; # Saída de tamanhos de arquivos legíveis por humanos.
}
Temas
Os seguintes temas demonstram o nível de personalização que pode ser alcançado usando o módulo:
- Tema por @TheInsomniac. Usa cabeçalho e rodapé personalizados.
- Tema por @Naereen. Usa cabeçalho e rodapé personalizados. O cabeçalho inclui um campo de busca para filtrar por nome de arquivo usando JavaScript.
- Tema por @fraoustin. Tema responsivo usando elementos do Material Design.
- Tema por @alehaa. Tema simples e plano baseado no Bootstrap 4 e FontAwesome.
Diretivas
fancyindex
Sintaxe
fancyindex [on | off]
Padrão
fancyindex off
Contexto
http, server, location
Descrição
Ativa ou desativa índices de diretório fancy.
fancyindex_default_sort
Sintaxe
fancyindex_default_sort [name | size | date | name_desc | size_desc | date_desc]
Padrão
fancyindex_default_sort name
Contexto
http, server, location
Descrição
Define o critério de ordenação por padrão.
fancyindex_case_sensitive
Sintaxe
fancyindex_case_sensitive [on | off]
Padrão
fancyindex_case_sensitive on
Contexto
http, server, location
Descrição
Se ativado (configuração padrão), a ordenação por nome será sensível a maiúsculas e minúsculas. Se desativado, a caixa será ignorada ao ordenar por nome.
fancyindex_directories_first
Sintaxe
fancyindex_directories_first [on | off]
Padrão
fancyindex_directories_first on
Contexto
http, server, location
Descrição
Se ativado (configuração padrão), agrupa diretórios juntos e os ordena antes de todos os arquivos regulares. Se desativado, os diretórios são ordenados junto com os arquivos.
fancyindex_css_href
Sintaxe
fancyindex_css_href uri
Padrão
fancyindex_css_href ""
Contexto
http, server, location
Descrição
Permite inserir um link para uma folha de estilo CSS nas listagens geradas. O parâmetro uri fornecido será inserido como está em uma tag HTML <link>. O link é inserido após as regras CSS embutidas, portanto, você pode substituir os estilos padrão.
fancyindex_exact_size
Sintaxe
fancyindex_exact_size [on | off]
Padrão
fancyindex_exact_size on
Contexto
http, server, location
Descrição
Define como representar os tamanhos dos arquivos na listagem de diretórios: ou com precisão, ou arredondando para o kilobyte, o megabyte e o gigabyte.
fancyindex_footer
Sintaxe
fancyindex_footer path [subrequest | local]
Padrão
fancyindex_footer ""
Contexto
http, server, location
Descrição
Especifica qual arquivo deve ser inserido ao pé das listagens de diretório. Se definido como uma string vazia, o rodapé padrão fornecido pelo módulo será enviado. O parâmetro opcional indica se o path deve ser tratado como uma URI a ser carregada usando um subrequest (o padrão), ou se refere a um arquivo local.
nota
Usar esta diretiva requer o ngx_http_addition_module_ embutido no Nginx.
aviso
Ao inserir um cabeçalho/rodapé personalizado, um subrequest será emitido, portanto, potencialmente qualquer URL pode ser usada como fonte para eles. Embora funcione com URLs externas, apenas o uso de internas é suportado. URLs externas não são testadas e usá-las fará com que o Nginx bloqueie enquanto espera a conclusão do subrequest. Se você sentir que um cabeçalho/rodapé externo é imprescindível para você, por favor me avise.
fancyindex_header
Sintaxe
fancyindex_header path [subrequest | local]
Padrão
fancyindex_header ""
Contexto
http, server, location
Descrição
Especifica qual arquivo deve ser inserido no cabeçalho das listagens de diretório. Se definido como uma string vazia, o cabeçalho padrão fornecido pelo módulo será enviado. O parâmetro opcional indica se o path deve ser tratado como uma URI a ser carregada usando um subrequest (o padrão), ou se refere a um arquivo local.
nota
Usar esta diretiva requer o ngx_http_addition_module_ embutido no Nginx.
fancyindex_show_path
Sintaxe
fancyindex_show_path [on | off]
Padrão
fancyindex_show_path on
Contexto
http, server, location
Descrição
Se deve ou não exibir o caminho e a tag de fechamento \</h1> após o cabeçalho. Isso é útil quando você deseja manipular a exibição do caminho com um script PHP, por exemplo.
aviso
Esta diretiva pode ser desativada apenas se um cabeçalho personalizado for fornecido usando fancyindex_header.
fancyindex_show_dotfiles
Sintaxe
fancyindex_show_dotfiles [on | off]
Padrão
fancyindex_show_dotfiles off
Contexto
http, server, location
Descrição
Se deve listar arquivos que são precedidos por um ponto. A convenção normal é ocultá-los.
fancyindex_ignore
Sintaxe
fancyindex_ignore string1 [string2 [... stringN]]
Padrão
Sem padrão.
Contexto
http, server, location
Descrição
Especifica uma lista de nomes de arquivos que não serão exibidos nas listagens geradas. Se o Nginx foi construído com suporte a PCRE, as strings são interpretadas como expressões regulares.
fancyindex_hide_symlinks
Sintaxe
fancyindex_hide_symlinks [on | off]
Padrão
fancyindex_hide_symlinks off
Contexto
http, server, location
Descrição
Quando ativado, as listagens geradas não conterão links simbólicos.
fancyindex_hide_parent_dir
Sintaxe
fancyindex_hide_parent_dir [on | off]
Padrão
fancyindex_hide_parent_dir off
Contexto
http, server, location
Descrição
Quando ativado, não mostrará o diretório pai.
fancyindex_localtime
Sintaxe
fancyindex_localtime [on | off]
Padrão
fancyindex_localtime off
Contexto
http, server, location
Descrição
Ativa a exibição dos horários dos arquivos como horário local. O padrão é “off” (horário GMT).
fancyindex_time_format
Sintaxe
fancyindex_time_format string
Padrão
fancyindex_time_format "%Y-%b-%d %H:%M"
Contexto
http, server, location
Descrição
String de formato usada para timestamps. Os especificadores de formato são um subconjunto dos suportados pela função strftime, e o comportamento é independente de local (por exemplo, os nomes de dias e meses estão sempre em inglês). Os formatos suportados são:
%a: Nome abreviado do dia da semana.%A: Nome completo do dia da semana.%b: Nome abreviado do mês.%B: Nome completo do mês.%d: Dia do mês como um número decimal (intervalo de 01 a 31).%e: Como%d, o dia do mês como um número decimal, mas um zero à frente é substituído por um espaço.%F: Equivalente a%Y-%m-%d(o formato de data ISO 8601).%H: Hora como um número decimal usando um relógio de 24 horas (intervalo de 00 a 23).%I: Hora como um número decimal usando um relógio de 12 horas (intervalo de 01 a 12).%k: Hora (relógio de 24 horas) como um número decimal (intervalo de 0 a 23); dígitos únicos são precedidos por um espaço.%l: Hora (relógio de 12 horas) como um número decimal (intervalo de 1 a 12); dígitos únicos são precedidos por um espaço.%m: Mês como um número decimal (intervalo de 01 a 12).%M: Minuto como um número decimal (intervalo de 00 a 59).%p: "AM" ou "PM" de acordo com o valor de tempo dado.%P: Como%p, mas em minúsculas: "am" ou "pm".%r: Hora em notação a.m. ou p.m. Equivalente a%I:%M:%S %p.%R: Hora em notação de 24 horas (%H:%M).%S: Segundo como um número decimal (intervalo de 00 a 60).%T: Hora em notação de 24 horas (%H:%M:%S).%u: Dia da semana como um decimal, intervalo de 1 a 7, sendo segunda-feira 1.%w: Dia da semana como um decimal, intervalo de 0 a 6, sendo segunda-feira 0.%y: Ano como um número decimal sem século (intervalo de 00 a 99).%Y: Ano como um número decimal incluindo o século.
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-fancyindex.