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
- Caché de contingut estàtic: Emmagatzema fitxers estàtics com imatges, CSS, JavaScript, etc.
- Caché de contingut dinàmic: Emmagatzema respostes generades dinàmicament per aplicacions web.
- Directives de caché: Configuracions específiques a NGINX per controlar el comportament de la caché.
Configuració Bàsica de la Caché
- Crear un Directori per a la Caché
Primer, hem de crear un directori on NGINX emmagatzemarà els fitxers de la caché.
- 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
).
- Reiniciar NGINX
Després de fer els canvis, reiniciem NGINX per aplicar la nova configuració.
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
- Error:
proxy_cache_path
no definit: Assegura't d'haver definit correctament la directivaproxy_cache_path
a la seccióhttp
. - 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.
- Encapçalaments de caché: Utilitza encapçalaments com
Cache-Control
iExpires
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.
Curs de NGINX
Mòdul 1: Introducció a NGINX
Mòdul 2: NGINX com a servidor web
- Servint contingut estàtic
- Llistats de directoris
- Pàgines d'error personalitzades
- Registre i formats de registre