En aquest tema, explorarem com configurar la caché a NGINX per millorar el rendiment del servidor i reduir la càrrega en els recursos del backend. La caché és una tècnica que permet emmagatzemar temporalment les respostes de les sol·licituds per servir-les més ràpidament en futures sol·licituds similars.

Conceptes Clau

  1. Caché de contingut estàtic: Emmagatzema fitxers estàtics com imatges, CSS, JavaScript, etc.
  2. Caché de contingut dinàmic: Emmagatzema respostes generades dinàmicament per aplicacions web.
  3. Directives de caché: Configuracions específiques a NGINX per controlar el comportament de la caché.

Configuració Bàsica de la Caché

  1. Crear un Directori per a la Caché

Primer, hem de crear un directori on NGINX emmagatzemarà els fitxers de la caché.

sudo mkdir -p /var/cache/nginx
sudo chown -R www-data:www-data /var/cache/nginx

  1. Configurar la Caché a NGINX

Afegirem les directives de configuració de la caché al fitxer de configuració de NGINX (nginx.conf o un fitxer de configuració específic del lloc).

http {
    # Definir la zona de caché
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            add_header X-Cache-Status $upstream_cache_status;
        }
    }
}

Explicació de les Directives

  • proxy_cache_path: Defineix el directori de la caché, la mida màxima, el temps d'inactivitat i altres paràmetres.
  • proxy_cache: Activa la caché per a la ubicació especificada.
  • proxy_cache_valid: Defineix la durada durant la qual les respostes es consideren vàlides.
  • add_header X-Cache-Status: Afegeix un encapçalament a les respostes per indicar l'estat de la caché (HIT, MISS, BYPASS).

  1. Reiniciar NGINX

Després de fer els canvis, reiniciem NGINX per aplicar la nova configuració.

sudo systemctl restart nginx

Exercicis Pràctics

Exercici 1: Configurar la Caché per a Contingut Estàtic

Configura NGINX per emmagatzemar en caché fitxers estàtics com imatges i CSS durant 30 minuts.

Solució

server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/html;
        try_files $uri $uri/ =404;
    }

    location ~* \.(jpg|jpeg|png|gif|css|js)$ {
        expires 30m;
        add_header Cache-Control "public";
    }
}

Exercici 2: Configurar la Caché per a Contingut Dinàmic

Configura NGINX per emmagatzemar en caché respostes dinàmiques del backend durant 5 minuts.

Solució

http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 5m;
            proxy_cache_valid 404 1m;
            add_header X-Cache-Status $upstream_cache_status;
        }
    }
}

Errors Comuns i Consells

  1. Error: proxy_cache_path no definit: Assegura't d'haver definit correctament la directiva proxy_cache_path a la secció http.
  2. Permisos del directori de caché: Verifica que el directori de la caché té els permisos correctes i és accessible per l'usuari que executa NGINX.
  3. Encapçalaments de caché: Utilitza encapçalaments com Cache-Control i Expires per controlar el comportament de la caché del navegador.

Conclusió

La configuració de la caché a NGINX és una tècnica poderosa per millorar el rendiment del servidor i reduir la càrrega en els recursos del backend. Hem après a configurar la caché per a contingut estàtic i dinàmic, així com a evitar errors comuns. En el següent mòdul, explorarem altres funcions avançades de NGINX per continuar millorant les nostres habilitats.

© Copyright 2024. Tots els drets reservats