Cómo hacer cache de recursos estáticos usando HTTP en Nginx

Si tienes un sitio web con mucho tráfico o muchos recursos estáticos, es probable que te encuentres con problemas de rendimiento en tu servidor. Una solución a esto es hacer uso de la cache HTTP en Nginx. En este artículo, te mostraré cómo hacer cache de tus recursos estáticos para mejorar el rendimiento de tu sitio web utilizando Nginx.
- Cómo hacer cache de recursos estáticos en Nginx
- Ejemplos de códigos o comandos
- Conclusión
-
Preguntas frecuentes
- ¿Qué tipos de archivos estáticos puedo cacheear en Nginx?
- ¿Cómo puedo verificar si un recurso está siendo recuperado desde la cache o si está siendo descargado desde el origen?
- ¿Qué beneficios obtengo al hacer cache de recursos estáticos en Nginx?
- ¿Es recomendable hacer cache de recursos dinámicos en Nginx?
Cómo hacer cache de recursos estáticos en Nginx
Paso 1: Configurando Nginx
La primera cosa que debes hacer es configurar Nginx para que procese la cache HTTP correctamente. Para hacerlo, agrega las siguientes líneas de código a tu archivo de configuración de Nginx:
http {
# Configuración de la cache
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache_zone:10m inactive=60m;
# Proxy settings
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_valid 200 60m;
proxy_cache_valid 404 1m;
}
En este ejemplo, estamos configurando la cache en el directorio "/var/cache/nginx". Además, estamos definiendo una zona de memoria llamada "cache_zone" con un tamaño de 10 MB y un tiempo de caducidad de 60 minutos para archivos cacheados. También estamos definiendo la clave de caché, que se utiliza para identificar recursos y establecer la duración de la caché.
Paso 2: Configurando el cache para recursos estáticos
Una vez que tienes la configuración básica de Nginx establecida, necesitas configurar la cache específicamente para tus recursos estáticos. Para hacerlo, debes agregar las siguientes líneas de código en la ubicación correspondiente dentro de tu archivo de configuración de Nginx, generalmente dentro de la sección "server":
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
proxy_cache_lock on;
proxy_cache_lock_timeout 5s;
proxy_pass http://backend;
}
En este ejemplo, estamos haciendo cache de archivos con extensiones ".jpg", ".jpeg", ".png", ".gif", ".ico", ".css" y ".js" por 30 días. Además, estamos agregando el encabezado "Cache-Control" con la directiva "public" para indicar que los archivos pueden ser cacheados por servidores intermedios.
Paso 3: Probando la configuración
Una vez que hayas hecho la configuración, debes probarla. La mejor manera de hacerlo es utilizar herramientas de prueba de velocidad en línea o agregar algunas herramientas para el desarrollo de sitios web como Chrome DevTools. De esta manera podrás verificar que los recursos estáticos estén siendo recuperados desde la cache en lugar de ser descargados cada vez que se acceden.
Ejemplos de códigos o comandos
Para verificar el funcionamiento de la cache en Nginx, puedes utilizar el siguiente comando:
curl -I http://www.example.com/logo.png
Este comando verificará el encabezado de respuesta del archivo "logo.png" en el sitio web "www.example.com" y te mostrará si está siendo recuperado desde la cache o si está siendo descargado desde el origen.
Conclusión
Hacer cache de recursos estáticos en Nginx es una excelente manera de mejorar el rendimiento de tu sitio web y reducir la carga en tu servidor. Al seguir los pasos descritos en este artículo, podrás configurar una cache HTTP efectiva en Nginx para hacer cache de tus recursos estáticos.
Preguntas frecuentes
¿Qué tipos de archivos estáticos puedo cacheear en Nginx?
Puedes cacheear archivos con extensiones como ".jpg", ".jpeg", ".png", ".gif", ".ico", ".css" y ".js".
¿Cómo puedo verificar si un recurso está siendo recuperado desde la cache o si está siendo descargado desde el origen?
Puedes utilizar herramientas de línea de comandos como "curl -I" para verificar la respuesta de encabezado de un archivo. También puedes utilizar herramientas para el desarrollo de sitios web como Chrome DevTools para verificar el tiempo de carga del recurso.
¿Qué beneficios obtengo al hacer cache de recursos estáticos en Nginx?
Obtienes una mejora en el rendimiento y en la velocidad de carga de tu sitio web. Además, reduces la carga en tu servidor y en la red en general, a medida que los recursos se recuperan de la cache en lugar de ser descargados cada vez que el usuario accede al sitio web.
¿Es recomendable hacer cache de recursos dinámicos en Nginx?
No se recomienda hacer cache de recursos dinámicos en Nginx, ya que estos cambian constantemente. Si necesitas hacer cache de recursos dinámicos, debes utilizar tecnologías de cache más avanzadas como Redis o Memcached.
[nekopost slugs="habilitar-compresion-brotli-nginx,ejemplos-de-ubicacion-de-ubicacion-nginx,que-es-el-cliente-del-cliente-tamano-del-cuerpo-nginx,nginx-usa-variables-de-entorno,use-nginx-con-flask,instalar-nginx-ubuntu,que-es-keepalive-en-nginx,servir-el-indice-html-con-nginx,nginx-con-docker-compose"]

Deja una respuesta