En aquest tema, aprendrem com configurar NGINX per mostrar llistats de directoris. Aquesta funcionalitat és útil quan volem permetre als usuaris veure i accedir als fitxers d'un directori específic a través del navegador.

Objectius

  • Entendre què són els llistats de directoris.
  • Aprendre a configurar NGINX per mostrar llistats de directoris.
  • Personalitzar l'aparença dels llistats de directoris.

Què són els llistats de directoris?

Els llistats de directoris són pàgines generades automàticament per NGINX que mostren el contingut d'un directori. Quan un usuari accedeix a un directori que no té un fitxer d'índex (com index.html), NGINX pot mostrar una llista dels fitxers i subdirectoris que conté.

Configurant els llistats de directoris

Per habilitar els llistats de directoris en NGINX, hem d'utilitzar el mòdul autoindex. A continuació, es mostra com configurar-ho en el fitxer de configuració de NGINX.

Exemple de configuració

  1. Obre el fitxer de configuració de NGINX. Normalment es troba a /etc/nginx/nginx.conf o en un fitxer de configuració específic del lloc a /etc/nginx/sites-available/.

  2. Afegeix la directiva autoindex dins del bloc server o location. Aquí teniu un exemple de configuració:

server {
    listen 80;
    server_name exemple.com;

    location /directori {
        root /var/www/html;
        autoindex on;
        autoindex_exact_size off;  # Mostra la mida dels fitxers en KB, MB, etc.
        autoindex_localtime on;    # Mostra la data i hora locals dels fitxers.
    }
}

Explicació del codi

  • listen 80;: Indica que el servidor escoltarà a la porta 80.
  • server_name exemple.com;: Defineix el nom del servidor.
  • location /directori { ... }: Defineix una ubicació específica per al directori /directori.
  • root /var/www/html;: Defineix el directori arrel on es troben els fitxers.
  • autoindex on;: Habilita els llistats de directoris.
  • autoindex_exact_size off;: Mostra la mida dels fitxers en unitats llegibles (KB, MB, etc.) en lloc de bytes.
  • autoindex_localtime on;: Mostra la data i hora locals dels fitxers en lloc de l'hora UTC.

Personalitzant l'aparença dels llistats de directoris

NGINX permet personalitzar l'aparença dels llistats de directoris mitjançant fitxers d'estil CSS. A continuació, es mostra com fer-ho:

  1. Crea un fitxer CSS. Per exemple, autoindex.css:
body {
    font-family: Arial, sans-serif;
}

a {
    color: #007bff;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}
  1. Modifica la configuració de NGINX per utilitzar el fitxer CSS:
server {
    listen 80;
    server_name exemple.com;

    location /directori {
        root /var/www/html;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        autoindex_format html;  # Utilitza el format HTML per als llistats de directoris.
        add_after_body /autoindex.css;  # Afegeix el fitxer CSS després del cos de la pàgina.
    }

    location /autoindex.css {
        root /var/www/html;
    }
}

Explicació del codi

  • autoindex_format html;: Indica que els llistats de directoris es generaran en format HTML.
  • add_after_body /autoindex.css;: Afegeix el fitxer CSS després del cos de la pàgina per personalitzar l'aparença.
  • location /autoindex.css { ... }: Defineix una ubicació per al fitxer CSS.

Exercici pràctic

Exercici

  1. Configura NGINX per mostrar llistats de directoris per al directori /var/www/html/files.
  2. Personalitza l'aparença dels llistats de directoris utilitzant un fitxer CSS.

Solució

  1. Configuració de NGINX:
server {
    listen 80;
    server_name exemple.com;

    location /files {
        root /var/www/html;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        autoindex_format html;
        add_after_body /autoindex.css;
    }

    location /autoindex.css {
        root /var/www/html;
    }
}
  1. Fitxer CSS (/var/www/html/autoindex.css):
body {
    font-family: Arial, sans-serif;
}

a {
    color: #007bff;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

Resum

En aquesta secció, hem après com configurar NGINX per mostrar llistats de directoris i com personalitzar l'aparença d'aquests llistats utilitzant fitxers CSS. Aquesta funcionalitat és útil per permetre als usuaris veure i accedir als fitxers d'un directori específic a través del navegador.

© Copyright 2024. Tots els drets reservats