Pasar al contenido principal

Optimizar Drupal con Boost

Enviado por drw el
Logo de DrupalDrupal es un sistema de contenido robusto, estable y escalable, es asi que dispone de módulos que permiten mejorar el rendimiento del mismo cuando tenemos visitas diarias superiores a las 1000, esto provoca que hayan un gran monto de consultas a nuestra base de datos, es por esto optamos por la solución de disminuir las consultas y optmizar los recursos de memoria y procesamiento del motor de DB, este procedimiento lo proporciona el módulo boost creando un directorio de contenido estático de nuestro sitio y que se regenera con cada ejecución de las tareas programadas por el cron.

Exiten varios tips documentados en el mismo módulo a través del archivo README.txt que nos proporciona una guia de como instalarlo, tips y trucos de como obtener el mejor funcionamiento del mismo con nuestro sitio.
En el presente post detallaré aspectos importantes del módulo recogidos a través de los problemas reportados en la página del mismo asi como una guia en español del módulo.
Empecemos con los topicos que se trataran:

Como funciona

Una vez que el módulo boost ha sido instalado y configurado, las peticiones o accesos a páginas de visitantes anomimos serán cacheada como páginas estáticas en el sistema de archivos del servidor.
Como se lo habia mencionado anteriormente estas páginas se actualizan periodicamente según la tareas programadas en el cron que ejecuta Drupal.

Instalación

El proceso de instalación es como el de cualquier módulo Drupal, pero en el que debemos tener ciertas consideraciones como las siguientes:
  1. Asegurese de que los URL Limpios funcionan perfectamente en su sitio, esto lo podemos comprobar a través de [Administrar -> Configuración del Sitio -> URL Limpios].
  2. Descargamos el módulo y lo descomprimimos dentro del directorio sites/all/modules/ de la instalación de su sitio con Drupal.
  3. Activamos el módulo a través de [Administrar -> Construcción del Sitio -> Modules] en la sección que esta etiquetada con "Caching".
  4. Empezamos a configurar el módulo y definimos el directorio que almacenará los archivos del cache, esto lo hacemos a través de [Administrar -> Configuración del Sitio -> Performance], por lo general ya esta establecido como "cache", se sugiere trabajar con este nombre del directorio, además se debe setear los permisos para que sea de escritura por el servidor Web, tambien en esta configuración debemos definir el tiempo de vida del cache para que se renove con la ejecución de la tarea programada cron.
  5. IMPORTANTE.
    Este paso es fácil y se requiere para que el módulo boost trabaje adecuadamente
    Es necesario respaldar el archivo .htaccess para luego poder alterar su codigo incluyendo las líneas generadas desde [Administrar -> Configuración del Sitio -> Performance-> htaccess rules generation ], copiamos este codigo dentro del archivo .htaccess luego de la linea "#rewrite /".
  6. Desactive el cache desde [Administrar -> Configuración del Sitio -> Performance], ya que esto se ejecutaŕa desde el módulo boost.
  7. Prepare el archivo robots.txt para los motores de búsqueda, incluya la siguiente linea:
    Disallow: /boost_stats.php

Tips de configuración

Para los módulos (i18n) y (domain):
Activar
    [x] Do not store the cache file path in the database
    [x] Flush all sites caches in this database (singe db, multi-site)
Desactivar
    [ ] Only allow ASCII characters in path
Activar el cache para XML & AJAX/JSON
   Activar
    [x] Cache .xml & /feed
    [x] Cache ajax/json

 Para utilizar el Cron Crawler
   Activar
    [x] Overwrite the cached file if it already exits
    [x] Expire content in DB, do not flush file.
    [x] Enable the cron crawler

Revisar y chequear el funcionamiento

Al realizar la revisión y chequeo del funcionamiento adecuado del módulo boost primero debemos ver el informe de estado de Sitio, a través de [Administrar -> Reportes -> Informe de estado].
En algunos casos en esta sección aparece que no tenemos activar el modulo headers en php, esto lo podemos hacer de la siguiente manera bajo linea de comandos(lo probe en Distribución GNU/Linux Debian Lenny):
a2enmod headers
luego reiniciamos el servidor apache2  con el comando:
/etc/init.d/apache2 restart
Luego de esto podemos accesar desde otro navegador a cualquier página del sitio y  podemos comprobar que esta funcionando el módulo correctamente ya que el final del código fuente de la página se verá la inclusión de las siguiente linea:
<!-- Page cached by Boost @ 2010-07-07 08:35:04, expires @ 2010-07-07 09:35:04 -->

Problemas comunes

En la implementación del módulo boost se presentan algunos inconvenientes los cuales como los habiamos visto en el enunciado anterior de evidencian revisando el informe de estado del sitio.

Tambien a veces nos encontramos con la dificultad que no se pueden descargar los archivos adjuntos referenciados por URL dentro de las páginas visualizadas con el Internet Explorer y si funciona en otros navegadores tales como Firefox y Safari, para esto podemos realizar la siguiente configuración dentro del apache.
Esto se atribuye a las lineas agregadas dentro del archivo .htaccess:
Header add Expires "Sun, 19 Nov 1978 05:00:00 GMT"
El problema es generado por la directiva "Header add". De esta forma Apache envia dos fechas de expiración y dos directivas de control-cache, y el pobre IE6 se confunde. En su lugar deberia ser utilizado "Header set". Aqui una actualización del codigo .htacces para boost:
# BOOST START
  <FilesMatch "\.(html.gz|html)$">
    <IfModule mod_headers.c>
      Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT"
      Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
    </IfModule>
    <IfModule mod_mime.c>
      AddCharset utf-8 .html
    </IfModule>
  </FilesMatch>


Si en caso no funciona la modificación anterior, se puede ir al siguiente enlace el cual sugiere hacer un cambio a nivel configuración de archivos de Apache tal como se explican a continuación:
<Directory /cache>
  <FilesMatch "\.(html.gz|html)$">
    <IfModule mod_headers.c>
        Header add Expires "Sun, 19 Nov 1978 05:00:00 GMT"
        Header add Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
    </IfModule>
  </FilesMatch>
</Directory>

El enlace de esta solución es el siguiente:
http://drupal.org/node/185075#comment-1622894

Enlaces relacionados

Otro enlace interesante acerca de la carga que provoca la directiva "Header" la podemos ver en el siguiente enlace:
http://drupal.org/node/699962
Video de configuración del módulo boost (Ingles)


Saludos y espero sirva esta información.

Secciones

Contenido Relacionado