28/09/2015 | Julián Valero

Cómo soportar miles de visitas en Drupal y no morir en el intento

¿Tu web en Drupal deja de funcionar cuando tienes muchas visitas porque el alojamiento no lo soporta?

¿Quieres poder soportar más visitantes en tu web sin tener que ampliar el coste de alojamiento?

Si la respuesta a las preguntas anteriores es afirmativa entonces es necesario mejorar el sistema de caché del sitio web.

El módulo Boost mejora los tiempos de carga de un sitio web al servir páginas estáticas para los visitantes anónimos. Utiliza .htaccess con lo que consigue evitar el uso de PHP y de la base de datos para usuarios anónimos. De esta forma consigue un rendimiento similar al de un sitio estático con HTML ya que un servidor como Apache es capaz de servir cientos de peticiones de este tipo por segundo. Se trata de la mejor opción de caché para mejorar el rendimiento de un sitio Drupal en un alojamiento compartido. En el caso de un VPS o un servidor dedicado existen otras alternativas, por ejemplo Varnish, aunque son mucho más complicadas de configurar que Boost.

Algunas de sus principales características son:

  • Soporta alojamientos compartidos, VPS y servidores dedicados
  • Diseñado para trabajar con Apache aunque soporta Nginx e IIS
  • Soporta instalaciones multi-sitio
  • Dispone de un generador de .htaccess integrado
  • Tiempo de vida de la caché configurable
  • Borrado de cachés mediante tareas de cron
  • Facilidad de instalación y configuración

A continuación vamos a ver los pasos necesarios para instalar y configurar Boost

  1. Instalación del módulo Boost no depende de ningún otro módulo para trabajar, el único requisito es que las URL limpias tienen que estar habilitadas, se puede verificar en admin/config/search/clean-urls, y funcionando correctamente. Para instalarlo se procede igual que con cualquier otro módulo de Drupal, descargándolo desde la página del proyecto, https://www.drupal.org/project/boost,  o usando drush, drush en boost -y
  2. Configurar módulo y editar archivo .htaccess Una vez instalado podemos acceder a la página de configuración del módulo, admin/config/system/boost, el módulo ya define una configuración estándar que puede ser útil en la mayoría de los casos.

En la pestaña ‘.htaccess’, admin/config/system/boost/htaccess/generator, el módulo nos facilita el código necesario para insertarlo en el archivo .htaccess de nuestro sitio así como el lugar en que hay que insertarlo. Al igual que con la configuración general, ya están configuradas unas opciones por defecto que nos permitirán generar una configuración válida para nuestro archivo .htaccess.

  1. Permisos de la carpeta de caché Por defecto Boost guarda los archivos generados en la carpeta cache y dentro de esta en una carpeta normal. Es necesario verificar los permisos de esta carpeta para asegurarnos de que dispone de permisos de escritura. En el informe de estado, admin/reports/status, se mostrará un error advirtiendo de este hecho.
  2. Comprobar funcionamiento Para verificar el correcto funcionamiento del módulo podemos realizar dos comprobaciones, la primera consiste en verificar que se generan archivos dentro de la carpeta cache/normal al visitar distintas páginas del sitio y la segunda consiste en observar el código fuente de una página visitada como usuario anónimo,al final de la misma tendremos que ver una cadena parecida a esta: <!– Page cached by Boost @ 2015-09-23 12:28:00, expires @ 2015-09-23 13:28:00, lifetime 1 hora –>
  3. Ignorar cache y .htaccess en el sistema de control de versiones usado Es recomendable que tanto la carpeta usada por Boost para almacenar la caché como el archivo .htaccess no se encuentren versionados por un sistema de control de versiones.
  4. Módulos extra Aunque con la configuración vista en los puntos anteriores Boost funcionará correctamente, existen algunos módulos extra que nos pueden aportar funcionalidades adicionales: Cache Expiration (https://www.drupal.org/project/expire): Marca el contenido actualizado como expirado de manera que en la siguiente peticion se regenerará, de esta forma evitamos servir contenido desactualizado. Global Redirect (https://www.drupal.org/project/globalredirect): Evita que tengamos varias URL apuntando al mismo contenido. Pathauto (https://www.drupal.org/project/pathauto): Permite generar alias de URL de manera automática en función de patrones. Transliteration (https://www.drupal.org/project/transliteration): Intenta representar con caracteres US-ASCII cualquier testo Unicode, también permite aplicarlo a los nombres de los archivos subidos.

En Hiberus hemos usado Boost para crear con éxito la caché estática de varios sitios cuyo porcentaje de tráfico proveniente de usuarios anónimos es muy alto, por ejemplo, en el recientemente lanzado portal de Turismo del Ayuntamiento de Madrid, www.esmadrid.com, puedes conocer más detalles en el post del Caso de Éxito. En este proyecto realizamos una batería de pruebas antes y después de instalar Boost, estas pruebas se realizaron manteniendo todos los elementos del sitio exactamente igual de una prueba a otra excepto por el módulo boost que en la segunda parte se encontraba instalado y configurado. Los resultados obtenidos fueron los siguientes:

  • Sin Boost instalado: La infraestructura preparada para el proyecto era capaz de dar servicio a 50 usuarios concurrentes1 antes de comenzar a degradarse y con más de 70 usuarios concurrentes se llegaba a un punto de saturación del servicio.
  • Con Boost instalado: La misma infraestructura era capaz de soportar más de 220 usuarios concurrentes1 de manera sostenida sin sufrir ningún tipo de alteración. En el momento de la prueba no pudimos sobrepasar este límite de usuarios debido a una limitación existente en la salida a Internet de la plataforma.

1: entendemos como usuarios concurrentes al número de peticiones simultáneas por segundo.

 

Consultoría y Desarrollo Web Drupal

Drupal constituye actualmente la mejor opción para desarrollar su portal en Internet con tecnología opensource. Su capacidad funcional y escalabilidad permiten desplegar desde el portal más sencillo hasta el más complejo.

Somos el proveedor líder en desarrollo de proyectos Drupal. Hemos desarrollado los proyectos más importantes de Drupal en España.

¿Te ayudamos?

2 comentarios

  1. Funciona genial este módulo, que gozada! 🙂

  2. Gracias por vuestras soluciones. Todas de manera profesional.

Comentar

Su dirección de correo electrónico no será publicada.Los campos necesarios están marcados *

*

¡Contacta con nosotros!

¿ALGUNA DUDA?

Llámanos y nuestros expertos realizarán un asesoramiento personalizado sin compromiso

902 87 73 92

SOLICITAR INFORMACIÓN

* Campos Obligatorios

Afirmo que he leido el aviso legal y acepto la Política de privacidad
Permito el tratamiento de mis datos personales con la finalidad informada