La velocidad de carga de las páginas web es un factor crucial para mejorar la experiencia del usuario y optimizar el rendimiento del sitio. LiteSpeed Cache (LSCache), desarrollado por LiteSpeed Technologies, es una herramienta que permite almacenar en caché las páginas de un sitio, reduciendo el tiempo de carga y ahorrando recursos del servidor. A continuación, se explican los conceptos básicos de esta tecnología, así como las principales estrategias de almacenamiento en caché que emplea.
Almacenamiento en caché: tipos y beneficios
LiteSpeed Cache permite almacenar las páginas web en caché pública, privada o no almacenarlas en absoluto, según las características de cada página. Esta clasificación ayuda a administrar mejor el rendimiento y el almacenamiento.
- Caché pública
Las páginas que pueden ser servidas de manera idéntica a todos los usuarios son candidatas para el almacenamiento en caché pública. Un ejemplo clásico son los archivos de blog sin contenido personalizado. Al no requerir personalización, la caché pública permite cargar la misma versión de la página para todos los usuarios sin ocupar mucho espacio en el servidor. Este tipo de caché es ideal para sitios que no requieren inicios de sesión ni segmentación basada en la IP del usuario. - Caché privada
Las páginas con contenido personalizado, como los carritos de compra, se almacenan en caché privada. Al ser únicas para cada usuario, requieren un almacenamiento específico para cada versión. Aunque este método ofrece un alto nivel de personalización, también consume más espacio en el servidor, ya que debe guardar una copia de la página para cada visitante. - ESI (Edge Side Includes)
La tecnología ESI permite combinar contenidos públicos y privados en una misma página, lo cual es útil para sitios con elementos personalizados, como widgets de carrito de compras. LSCache utiliza la caché pública para la mayor parte de la página, reservando espacio en caché privada solo para los elementos que necesitan personalización. Este método ofrece un equilibrio entre eficiencia de almacenamiento y personalización.
Gestión y almacenamiento de la caché
LiteSpeed Cache facilita la gestión del almacenamiento en caché mediante la gestión de objetos en caché y el SHM (Cache Manager Shared Memory), una memoria compartida donde se almacenan detalles sobre cada objeto en caché. Esta memoria puede ubicarse en un disco RAM para acelerar el acceso, aunque se perderá su contenido en caso de reinicio físico del servidor. Además, LSCache emplea el método LRU (Least Recently Used) para eliminar los objetos en caché menos recientes, garantizando que el almacenamiento se mantenga a un tamaño manejable sin afectar el rendimiento.
Purga de la caché
LSCache realiza automáticamente un proceso de limpieza, eliminando objetos en caché que hayan superado su tiempo de vida (TTL). En caso de que algunos objetos no sean eliminados en este proceso, LiteSpeed recomienda la configuración de un trabajo cron que elimine archivos antiguos o específicos en intervalos regulares. También ofrece la opción de purgar la caché de forma manual o mediante el uso de un comando curl
para borrar cachés de URLs específicas.
Configuración de trabajos cron para borrar la caché
LiteSpeed Cache permite configurar trabajos cron para gestionar y eliminar archivos en caché que han superado su tiempo de vida (TTL). Esto es especialmente útil en entornos de hosting compartido o en servidores donde la caché no se elimina automáticamente.
- Cron para eliminar archivos en caché antiguos
Este trabajo cron elimina archivos en caché que tienen más de 8 minutos de antigüedad, lo cual es útil si has configurado un TTL corto para tu sitio (por ejemplo, 2 minutos).*/10 * * * * root find /ruta/a/tu/cache/ -type f -mmin +8 -delete 2>/dev/null
Este cron se ejecuta cada 10 minutos y elimina los archivos en caché que tienen más de 8 minutos. Ajusta el tiempo según el TTL que hayas establecido para tu sitio. - Cron para limpiar el almacenamiento en caché de grandes directorios
Este cron es útil en servidores con múltiples sitios o en entornos de hosting compartido. Verifica si la carpeta de caché de cada sitio supera un tamaño específico (por ejemplo, 30 GB) y elimina archivos en caché que tengan más de un día de antigüedad.0 0 * * * LARGE_LSDIR="$(du --threshold=30G -sh /home/*/lscache/ | cut -f2-)"; for ls_path in $LARGE_LSDIR; do echo "Limpiando $ls_path"; find $ls_path -type f -mtime +1 -exec rm -f {} \;; done
Este cron se ejecuta una vez al día y revisa cada directorio en busca de archivos en caché que sean mayores a 30 GB y más antiguos que un día (1440 minutos).
Uso de scripts de LiteSpeed para limpiar la caché
LiteSpeed Web Server incluye un script para limpiar la caché de manera manual, llamado cleancache.sh
. Este script borra todos los archivos en caché que tengan más de 24 horas de antigüedad.
Para ejecutar el script, utiliza el siguiente comando (ajustando la ruta del directorio de caché):
/usr/local/lsws/admin/misc/cleancache.sh /ruta/a/tu/cache/
Nota: Asegúrate de que la TTL de tu caché sea menor de 24 horas, ya que este script eliminará archivos que aún podrían ser válidos si tienen una TTL mayor.
Comando curl
para purgar la caché
LiteSpeed permite purgar la caché de una página específica utilizando un comando curl
. Esto es especialmente útil cuando necesitas vaciar la caché de una URL en particular, sin afectar a todo el sitio.
- Purgar una URL específica
Agrega el métodoPURGE
a las reglas de reescritura en LiteSpeed para habilitar el uso del comandocurl
. Por ejemplo:RewriteCond %{REQUEST_METHOD} ^HEAD|GET|PURGE$
- Ejecutar el comando
curl
Ejecuta el siguiente comandocurl
para purgar la caché de una URL específica:curl -i -X PURGE http://example.com/ruta/a/tu/pagina
Importante: Asegúrate de incluir la barra final/
si estás purgando la página principal (index.php
) del sitio. Sin esta barra, el comando no funcionará correctamente.
Purga de caché por URL con el script purge_cache_by_url
LiteSpeed incluye un script adicional para purgar la caché de una URL específica llamado purge_cache_by_url
. Puedes utilizar este script cuando desees eliminar la caché de una URL concreta sin afectar a otros archivos en caché.
- Ejemplo de uso para refrescar una URL específica:
/usr/local/lsws/admin/misc/purge_cache_by_url -r http://example.com/ruta/a/tu/pagina
- Ejemplo de uso para purgar una URL específica:
/usr/local/lsws/admin/misc/purge_cache_by_url -p http://example.com/ruta/a/tu/pagina
Nota: No uses comodines (*
) en la URL, ya que este script requiere una URL específica.
Ejemplo de limpieza de toda la caché con un comando del sistema operativo
Si necesitas eliminar todos los archivos en caché rápidamente, puedes utilizar un comando de sistema para borrar el contenido de la carpeta de caché. Ten en cuenta que este método eliminará toda la caché sin tener en cuenta el TTL ni el uso de cada archivo.
rm -rf /ruta/del/directorio/de/cache/*
Precaución: Este comando eliminará todos los archivos en la carpeta de caché. Asegúrate de ejecutar este comando con cuidado.
Recomendaciones para una implementación eficaz
Para facilitar la configuración, LiteSpeed recomienda el uso de plugins de LSCache para aplicaciones web que ya vienen con reglas específicas de almacenamiento en caché. En casos donde no hay un plugin disponible, los administradores pueden configurar manualmente el almacenamiento en caché mediante reglas de reescritura.
Además, LSCache permite ajustar el almacenamiento en caché según las necesidades de cada sitio. En algunos casos, como páginas que generan contenido aleatorio o con scripts personalizados, LiteSpeed recomienda desactivar el caché de forma global para evitar problemas de funcionalidad.
Conclusión
LiteSpeed Cache es una solución poderosa para optimizar el rendimiento web mediante un uso inteligente del almacenamiento en caché. Al utilizar cachés públicas, privadas y ESI, LSCache se adapta a las diferentes necesidades de personalización de cada sitio. La gestión automatizada y las opciones de purga de caché permiten mantener un entorno eficiente, ayudando a los administradores a reducir la carga del servidor y mejorar la experiencia de los usuarios.