Icono del sitio Binario 0

Guía Completa para Configurar Múltiples Zonas de Caché en un Proxy Inverso con Nginx

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Guía paso a paso para configurar múltiples zonas de caché en un proxy inverso de Nginx. Esto es útil si deseas optimizar el uso del caché para diferentes tipos de contenido o backend.

1. Requisitos previos

2. Entendiendo las zonas de caché en Nginx

Nginx utiliza el módulo proxy_cache para almacenar en caché las respuestas de los servidores backend. Las zonas de caché se definen en el bloque http y están vinculadas a ubicaciones específicas (location).

3. Crear directorios para las zonas de caché

Antes de definir múltiples zonas, debes crear directorios separados en tu servidor para almacenar los archivos de caché:

sudo mkdir -p /var/cache/nginx/cache_zone1
sudo mkdir -p /var/cache/nginx/cache_zone2

# Ajusta los permisos para Nginx
sudo chown -R www-data:www-data /var/cache/nginx/
sudo chmod -R 700 /var/cache/nginx/

4. Configurar las zonas de caché en el archivo de configuración de Nginx

Edita el archivo de configuración principal de Nginx, generalmente ubicado en /etc/nginx/nginx.conf o en un archivo dentro de /etc/nginx/conf.d/.

Paso 4.1: Define las zonas de caché

Dentro del bloque http, añade las configuraciones de las zonas de caché. Por ejemplo:

http {
# Zona de caché para contenido estático
proxy_cache_path /var/cache/nginx/cache_zone1 levels=1:2 keys_zone=cache_zone1:10m max_size=100m inactive=1h use_temp_path=off;

# Zona de caché para contenido dinámico
proxy_cache_path /var/cache/nginx/cache_zone2 levels=1:2 keys_zone=cache_zone2:10m max_size=200m inactive=30m use_temp_path=off;

include /etc/nginx/conf.d/*.conf;
}

5. Configurar ubicaciones específicas para usar las zonas de caché

Configura diferentes ubicaciones para utilizar las zonas de caché definidas:

server {
listen 80;
server_name example.com;

# Caché para contenido estático
location /static/ {
proxy_cache cache_zone1;
proxy_pass http://backend_static;
proxy_cache_valid 200 404 1d;
add_header X-Cache-Status $upstream_cache_status;
}

# Caché para contenido dinámico
location /dynamic/ {
proxy_cache cache_zone2;
proxy_pass http://backend_dynamic;
proxy_cache_valid 200 10m;
add_header X-Cache-Status $upstream_cache_status;
}
}

Explicación:

6. Probar la configuración

Paso 6.1: Verificar errores en el archivo de configuración

Ejecuta el siguiente comando para asegurarte de que la configuración no tiene errores:

sudo nginx -t

Paso 6.2: Recargar Nginx

Recarga el servicio para aplicar los cambios:

sudo systemctl reload nginx

7. Verificar el estado del caché

Realiza solicitudes a las rutas configuradas (/static/ y /dynamic/) y revisa los encabezados de las respuestas para confirmar si la caché funciona correctamente:

curl -I http://example.com/static/somefile
curl -I http://example.com/dynamic/someapi

Busca el encabezado X-Cache-Status para validar los resultados (HIT, MISS, etc.).

8. Monitorizar y ajustar

Salir de la versión móvil