Nginx por defecto y por seguridad no lista el contenido de directorios.
Veamos como funciona y como activar el listado de contenido de directorios.
Funcionamiento
Un Servidor Virtual de Nginx ejecutará el primer fichero que tenga definido y que encuentre en la directiva index.
Se ejecutará por orden de prioridad de izquierda a derecha hasta que consiga encontrar uno de ellos
1 |
index index.php index.html; |
En caso de no existir un índice, Nginx mostrara un error 403 y no permitirá listar el contenido de este.
El módulo ngx_http_autoindex_module
El módulo ngx_http_autoindex_module es el encargado de procesar el contenido de directorios.
Este módulo permite configurar una serie de directivas con las que podremos configurar estos listados.
- autoindex (on|off)
- autoindex_format (html|xml|json|jsonp)
- autoindex_exact_size (on|off)
- autoindex_localtime (on|off)
La que nos interesa es la directiva autoindex por lo que vamos a activarla en nuestro servidor virtual.
1 2 3 |
location /menus { autoindex on; } |
La directiva autoindex_format nos permite cambiar el formato de salida del listado. Por defecto es html y no tenemos porque incluirla.
1 2 3 4 |
location /menus { autoindex on; autoindex_format json; } |
La directiva autoindex_exact_size por defecto muestra el tamaño del fichero en bytes por lo que activándola nos redondeará su tamaño a Kb, Mb o Gb.
La directiva autoindex_localtime esta desactivada por defecto y muestra la fecha local en formato UTC.
En cuanto a seguridad hay que tener cuidado con la directiva autoindex, ya que todas las carpetas dentro de ella que no dispongan de índice heredarán su misma configuración.