Mantenimiento Equipo Avantys 6 min

LiteSpeed para Moodle: Caché a Nivel de Servidor

Cómo funciona la caché LSCache de LiteSpeed en Moodle, por qué no existe un plugin oficial, y el error de caché pública que mezcla datos entre alumnos.

// Compartir

LiteSpeed para Moodle: Caché a Nivel de Servidor

LiteSpeed es, junto a Nginx, una de las alternativas más citadas a Apache para alojar Moodle con buen rendimiento, y su función más potente, la caché LSCache, es también la que más incidentes silenciosos genera cuando se configura sin conocer un detalle muy concreto: activar la caché pública sin cuidado puede hacer que un alumno vea el nombre y los cursos de otro alumno distinto.

En esta guía vas a ver qué aporta realmente LiteSpeed frente a otros servidores web, cómo configurar su caché para Moodle sin ese riesgo, y por qué no existe (todavía) un plugin oficial de LSCache para Moodle como sí existe para WordPress.

Qué es LiteSpeed y en qué se diferencia de Nginx o Apache

LiteSpeed es un servidor web de alto rendimiento, compatible con la configuración de Apache (lo que facilita la migración), que incluye de serie LSCache, un motor de caché de página integrado, comparable a lo que Varnish hace de forma externa. Mientras que con Nginx o Apache normalmente necesitas una capa de caché adicional separada, LiteSpeed la trae incorporada en el propio servidor web.

LSCache no es lo mismo que OPcache ni que Redis

Es fácil confundir los tres, pero cada uno resuelve un problema distinto:

TecnologíaQué cachea
OPcacheEl bytecode compilado del código PHP, evitando recompilarlo en cada petición
RedisDatos de sesión y caché de aplicación de Moodle (estructuras de curso, preferencias)
LSCacheLa página HTML completa ya generada, sirviéndola directamente sin volver a ejecutar PHP

Los tres son complementarios, no sustitutos entre sí, puedes (y deberías, si usas LiteSpeed) tener los tres activos a la vez, cada uno atacando una capa distinta del proceso de generar una página.

Por qué no existe un plugin oficial de LSCache para Moodle

A diferencia de WordPress, que cuenta con un plugin oficial de LiteSpeed Cache mantenido activamente, Moodle no tiene actualmente un plugin equivalente. La forma de habilitar la caché es mediante reglas de reescritura (rewrite rules) en el .htaccess del sitio, siguiendo la documentación oficial de LiteSpeed para configurar LSCache sin plugin.

El error que puede exponer datos de un alumno a otro

Este es, con diferencia, el detalle más importante de todo el artículo: la caché pública de LiteSpeed no debe activarse de forma general en Moodle, porque casi todas las páginas (salvo la de login) contienen datos específicos del usuario que las solicita, su nombre, sus cursos, sus calificaciones. Si esa página se sirve desde una caché pública compartida entre usuarios, el siguiente visitante puede recibir la página cacheada con los datos del usuario anterior, viendo su nombre, sus cursos e incluso, en configuraciones descuidadas, secciones de administración a las que no debería tener acceso.

La solución correcta es usar la caché privada (por usuario), que sí es segura porque cada usuario tiene su propia copia en caché, no compartida con nadie más. La caché pública, si se usa, debe limitarse explícitamente a páginas sin datos personalizados (típicamente, solo la vista de invitado o la pantalla de login) nunca de forma general para todo el sitio.

Diferencia entre caché privada y pública de LiteSpeed en Moodle

Configuración recomendada

  1. Activa la caché privada a nivel de servidor o de virtual host, siguiendo la configuración de cache root y cache policy de LiteSpeed.
  2. No actives la caché pública de forma general. Si quieres cachear la vista de invitado, hazlo mediante reglas de reescritura específicas para esa ruta concreta, no para todo el sitio.
  3. Usa almacenamiento SSD para el cache root, ya que LiteSpeed recomienda explícitamente evitar discos duros tradicionales para esta función.
  4. Verifica que la caché está funcionando revisando la cabecera de respuesta X-LiteSpeed-Cache: hit en las herramientas de desarrollador del navegador, o usando la herramienta de verificación LSCache Check.

Ajustes de PHP que no debes olvidar en OpenLiteSpeed

Al configurar Moodle sobre OpenLiteSpeed, hay ajustes de PHP específicos que conviene revisar en el php.ini de la instancia LiteSpeed (no siempre el mismo archivo que usarías con Apache):

  • max_input_vars a 5000 o más, el mínimo que exige Moodle.
  • Extensiones curl e intl activas.
  • Ubicación correcta de las carpetas moodle y moodledata respecto a la configuración de Virtual Host de LiteSpeed, que gestiona rutas de forma distinta a Apache.

El cron funciona igual que en cualquier otro servidor

Un motivo de duda habitual es si el cron de Moodle funciona con normalidad sobre una instalación LiteSpeed/OpenLiteSpeed. La respuesta es sí: la versión de PHP de LiteSpeed funciona perfectamente desde el crontab del sistema operativo, exactamente igual que en un servidor Apache o Nginx, no requiere ningún tratamiento especial distinto al que ya cubrimos en el cron de Moodle: por qué es crítico.

Errores comunes al usar LiteSpeed con Moodle

  • Activar la caché pública para todo el sitio, exponiendo datos de un usuario a otro por servir páginas cacheadas indebidamente.
  • Esperar un plugin oficial de LSCache para Moodle, que actualmente no existe, hay que configurarlo mediante reglas de reescritura manuales.
  • Usar disco duro tradicional para el cache root, en vez de SSD, perdiendo buena parte del beneficio de rendimiento de la caché.
  • No verificar que la caché realmente funciona, asumiendo que está activa sin comprobar la cabecera de respuesta correspondiente.
  • No revisar los ajustes de PHP específicos de LiteSpeed tras migrar desde Apache, dando por hecho que la configuración se traslada automáticamente igual.

Preguntas frecuentes

¿Existe un plugin oficial de LSCache para Moodle? No, a diferencia de WordPress. La caché se configura mediante reglas de reescritura en el .htaccess, siguiendo la documentación oficial de LiteSpeed para sitios sin plugin disponible.

¿Es seguro activar la caché pública en Moodle? No de forma general, casi todas las páginas de Moodle contienen datos personalizados por usuario. Limita la caché pública, si la usas, a vistas sin datos personales como el login o el acceso de invitado.

¿LSCache sustituye a Redis o a OPcache? No, son complementarios: LSCache cachea la página HTML completa, Redis cachea datos de sesión y aplicación, y OPcache cachea el bytecode de PHP compilado. Los tres pueden y deberían convivir.

¿Cómo verifico que la caché de LiteSpeed está funcionando? Revisando la cabecera de respuesta X-LiteSpeed-Cache en las herramientas de desarrollador del navegador, que debería mostrar hit en peticiones ya cacheadas.

¿Necesito cambiar algo en Moodle para usar LiteSpeed? No en el propio código de Moodle, pero sí conviene revisar ajustes de PHP específicos de la instancia LiteSpeed (max_input_vars, extensiones necesarias) y la ubicación de las carpetas del sitio respecto a la configuración de Virtual Host.

¿El cron de Moodle funciona igual en LiteSpeed que en Apache? Sí, sin ningún tratamiento especial adicional, ejecutándose desde el crontab del sistema exactamente igual que en cualquier otro servidor web.

¿Qué disco debo usar para el cache root de LiteSpeed? SSD, ya que LiteSpeed desaconseja explícitamente el uso de discos duros tradicionales para esta función, por la penalización de rendimiento que supone.

Conclusión

LiteSpeed puede aportar una mejora de rendimiento real para Moodle gracias a LSCache, pero exige un cuidado muy específico que no aplica de la misma forma en WordPress: la caché pública, mal configurada, puede filtrar datos personales de un usuario a otro. Con la caché privada bien configurada y la pública limitada a vistas sin datos personalizados, es una de las capas de rendimiento más potentes disponibles para una instalación de Moodle.

Si prefieres que alguien configure esto correctamente por ti, en Avantys lo incluimos como parte de la optimización de cada Moodle que gestionamos. Puedes pedir una auditoría gratuita en Moodle Gestionado.

Artículos relacionados


¿Y si tu Moodle lo lleváramos nosotros?

Actualizaciones, backups verificados, rendimiento y trazabilidad FUNDAE, gestionado de forma continua por una persona que responde. Auditoría gratuita de tu plataforma actual.

Ver Moodle Gestionado
// Boletín

Suscríbete al boletín

Guías nuevas, sin spam. Cancela cuando quieras.