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_pathno definit: Assegura't d'haver definit correctament la directivaproxy_cache_patha 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-ControliExpiresper 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
