Mod_pagespeed es un módulo para el servidor web Apache que optimiza tu web antes de servirla, mejorando bastante el rendimiento y la latencia de la misma. Todos conocemos la importancia de utilizar sistemas de caché para reducir el número de peticiones a nuestro sitio web, pero hay otros muchos ajustes y modificaciones que podemos realizar para reducir los tiempos de carga. La optimización de los archivos CSS, la expiración de las cabeceras, la optimización de las imágenes, etc, son puntos a tener en cuenta para mejorar el rendimiento de tu sitio web. Puedes implementar estas características usando plugins (por ejemplo en WordPress), pero si tienes la posibilidad de integrarlo directamente en Apache será todavía mucho mejor, y aquí es donde entra en juego mod_pagespeed.
Si utilizas un alojamiento compartido, las posibilidades de optimización son muy limitadas, pero si tienes un VPS o un Servidor Dedicado podrás implementar este módulo sin problemas y verdaderamente notarás la diferencia. Google diseñó el módulo PageSpeed como una forma sencilla de implementar diferentes medidas que te ayudan a optimizar la carga de las webs: optimizar imágenes, JavaScript, CSS, HTML y XML. Puede instalarse en distribuciones CentOS/Fedora y Debian/Ubuntu, y aquí vamos a ver concretamente cómo lo instalamos en un servidor con cPanel.
Clonando el repositorio por SSH
Afortunadamente para nosotros, GIT se instala automáticamente con WHM/cPanel, y sólo tenemos que ejecutarlo especificando la ruta completa:
/usr/local/cpanel/3rdparty/bin/git clone https://github.com/pagespeed/cpanel.git /tmp/pagespeed/
Esto clonará el directorio desde GitHub en un directorio temporal de nuestro servidor. Ahora vamos a moverlo todo a su ubicación correcta para poder instalar mod_pagespeed fácilmente con EasyApache:
cd /tmp/pagespeed/Easy tar -zcvf Speed.pm.tar.gz pagespeed mkdir -p /var/cpanel/easy/apache/custom_opt_mods/Cpanel/Easy mv Speed.pm Speed.pm.tar.gz -t /var/cpanel/easy/apache/custom_opt_mods/Cpanel/Easy/ cd && rm -rf /tmp/pagespeed
Con estos comandos, he navegado en primer lugar al directorio temporal donde hemos descargados los archivos, posteriormente hemos descomprimido la descarga, creado el directorio correspondiente para mover a continuación los archivos y, por último, hemos eliminado el directorio temporal creado inicialmente.
Con esto, ahora podemos dirigirnos a EasyApache 3 en WHM y veremos que ya nos aparece disponible la opción de seleccionar mod_pagespeed para su instalación. ¿Ha sido sencillo, verdad?
Una vez instalado mediante EasyApache 3, encontraremos el archivo de configuración de mod_pagespeed en la ruta de nuestro servidor /usr/local/apache/conf/pagespeed.conf. Podemos utilizar la configuración que viene por defecto, o bien podemos personalizarla con los valores que consideremos oportunos.
Primero crearemos el archivo /etc/rpm/macros.apache2
nano /etc/rpm/macros.apache2
y pondremos en él las siguientes líneas
%_httpd_mmn 20120211x8664 %_httpd_apxs /usr/bin/apxs %_httpd_dir /etc/apache2 %_httpd_bindir %{_httpd_dir}/bin %_httpd_modconfdir %{_httpd_dir}/conf.modules.d %_httpd_confdir %{_httpd_dir}/conf.d %_httpd_contentdir /usr/share/apache2 %_httpd_moddir /usr/lib64/apache2/modules
A continuación ejecutaremos los siguientes comandos en orden
yum install rpm-build cpio ea-apache24-mod_version wget https://github.com/pagespeed/cpanel/raw/master/EA4/ea-apache24-mod_pagespeed-latest-stable.src.rpm rpmbuild --rebuild ea-apache24-mod_pagespeed-latest-stable.src.rpm rpm -ivh /root/rpmbuild/RPMS/x86_64/ea-apache24-mod_pagespeed*.rpm service httpd restart
Ahora ya tendremos instalado y activado el módulo PageSpeed en EasyApache 4, y encontraremos el archivo de configuración en la ruta de nuestro servidor /etc/apache2/conf.modules.d.
– ModpageSpeed On: Habilita o deshabilita PageSpeed («On» para habilitarlo y «Off» para deshabilitarlo).
– ModPagespeedDisallow: Se utiliza para excluir algún archivo o directorio de la optimización de PageSpeed. Por ejemplo:
ModPagespeedDisallow */miarchivo.js (esto deshabilita pagespeed para el archivo «miarchivo.js» dentro de cualquier directorio)
ModPagespeedDisallow */midirectorio/* (esto deshabilitad pagespeed para el directorio «midirectorio» y todos los archivos y directorios que éste contenga)
ModPagespeedDisallow * (esto deshabilita completamente pagespeed, para que podamos incluír sólo directorios o archivos completos en la optimización).
– ModPagespeedAllow: Es la directiva opuesta a la anterior, se utiliza para especificar los archivos o directorios que debe optimizarse. No es necesario utilizarla a menos que se utilice la anterior.
– AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER: Habilita el procesamiento de HTML, xHTML y XML.
– ModPagespeedFileCachePath y ModPagespeedGeneratedFilePrefix: Directorios donde se almacenarán los archivos optimizados. Puedes cambiar estos directorios, pero deben existir de antemano porque PageSpeed no los creará automáticamente. Además, Apache tiene que tener permisos para poder escribir en estos directorios.
Recuerda que después de realizar cualquier cambio en el archivo de configuración de Pagespeed, será necesario que reinicies Apache.
Más información en la web de PageSpeed: https://developers.google.com/speed/pagespeed/module/configuration