Optimizando el servidor web con el módulo Pagespeed

Google Pagespeed Logo

Uno de los problemas que nos encontramos al desplegar nuestro proyecto web en un servidor es el rendimiento que nos ofrece. En muchos casos tenemos que montar un proyecto que no hemos desarrollado nosotros, o es un CMS como WordPress o PrestaShop desarrollado por otra tercera persona.

En estos casos tenemos que empezar a tocar las configuraciones del servidor, en el caso que tengamos el control de la cuenta de súper-usuario, si no tendríamos que contactar con el hosting para que nos modificara los valores deseados.

Una buena manera de empezar a optimizar nuestros servidores y proyectos, sería empezar por la instalación del módulo de apache2 “mod_pagespeed” desarrollado por Google, bajo el paraguas de Apache Incubator.

Este post será la parte 1 de unos cuántos post de optimización de servidores webs.

Este módulo está disponible para los siguientes sistemas:

Apache2:

  • Debian/Ubuntu 32-bit .deb
  • Debian/Ubuntu 64-bit .deb
  • CentOS/Fedora 32-bit .rpm
  • CentOS/Fedora 64-bit .rpm

Nginx

Debe ser compilado desde código fuente.

Instalación para apache2

Google nos facilita el paquete binario pre-compilado, así que es muy simple.

Primero debemos entrar en la siguiente URL: Descargar módulo pagespeed

Una vez descargado el paquete, con estos simples comandos podemos instalarlo:

Debian/Ubuntu

sudo dpkg -i mod-pagespeed-*.deb
sudo apt-get -f install

CentOS/Fedora

sudo yum install at  # if you do not already have 'at' installed
sudo rpm -U mod-pagespeed-*.rpm

Configuración apache2

El primero archivo que debemos revisar es el siguiente: /etc/apache2/mods-available/pagespeed.conf

Este es el archivo global de configuración del módulo, aplicará a cualquier sitio alojado en el servidor.

Las configuraciones más importantes son las siguientes:

    #Activar el módulo
    ModPagespeed on

    #Carpeta para guardar el cache
    ModPagespeedFileCachePath "/var/cache/mod_pagespeed/"

    #Carpeta de logs del módulo
    ModPagespeedLogDir "/var/log/pagespeed"

    #Carpeta de los certificados
    ModPagespeedSslCertDirectory "/etc/ssl/certs"

    #Carpeta de memoria compartida para aliviar la RAM.
    ModPagespeedCreateSharedMemoryMetadataCache "/var/cache/mod_pagespeed/" 51200

    #Inodos de cache
    ModPagespeedFileCacheInodeLimit 500000

    #Configuración del administrador web
    #Es recomendable configurar un usuario y password de apache para el acceso
    <Location /pagespeed_admin>
        Order allow,deny
        Allow from localhost
        Allow from 127.0.0.1
        SetHandler pagespeed_admin
    </Location>
    <Location /pagespeed_global_admin>
        Order allow,deny
        Allow from localhost
        Allow from 127.0.0.1
        SetHandler pagespeed_global_admin
    </Location>

    #Activar las estadisticas
    ModPagespeedStatisticsLogging on

Configuración de un VirtualHost

Ahora configuraremos el VirtualHost de nuestro sitio: /etc/apache2/sites-available/nuestrositio.conf

    #Configuración decente para un PrestaShop o WordPress
    ModPagespeedDisallow *js_tinyMCE*
    ModPagespeedDisallow *tiny_mce*
    ModPagespeedDisallow *tinymce*

    ModPagespeedRewriteLevel CoreFilters
    ModPagespeedEnableFilters extend_cache
    ModPagespeedEnableFilters prioritize_critical_css
    ModPagespeedEnableFilters combine_css
    ModPagespeedEnableFilters rewrite_css
    ModPagespeedEnableFilters combine_javascript
    ModPagespeedEnableFilters rewrite_javascript
    ModPagespeedEnableFilters defer_javascript
    ModPagespeedEnableFilters lazyload_images
    ModPagespeedDisableFilters inline_css
    ModPagespeedEnableFilters sprite_images
    ModPagespeedEnableFilters convert_png_to_jpeg,convert_jpeg_to_webp
    ModPagespeedEnableFilters recompress_webp
    ModPagespeedEnableFilters collapse_whitespace,remove_comments

Instalación Nginx

Próximamente…

Configuración Nginx

Próximamente…

Configuración de un VirtualHost

Próximamente…

¿Qué más debo optimizar?

La activación de este módulo permite ganar mucha velocidad en nuestra web, pero no debemos quedarnos ahí. Hay mucho más trabajo que hacer.

En próximos post hablaremos de otras configuraciones que debemos aplicar a nuestro servidor web.