En este artículo, le mostraremos cómo instalar y configurar el módulo ngx_pagespeed de Google para los servidores web Nginx en los sistemas RHEL / CentOS / Fedora y Debian / Ubuntu usando paquetes binarios oficiales, para que su sistema reciba actualizaciones periódicas automáticamente.
Tabla de contenidos
Qué es ngx_PageSpeed
ngx_pagespeed es un módulo de código abierto para el servidor web Nginx que optimiza automáticamente las páginas web para mejorar el rendimiento al tiempo que sirve las páginas web utilizando el servidor HTTP.
Tiene varios filtros que optimizan automáticamente archivos como HTML, CSS, JavaScript, JPEG, PNG y otros recursos.
ngx_pagespeed está desarrollado en las bibliotecas de optimización de PageSpeed, implementadas en más de 100 mil sitios web y proporcionadas por los proveedores de hospedaje y CDN más populares, como GoDaddy, EdgeCast, DreamHost y pocas para nombrar.
Ofrece más de 40 filtros de optimización, que incluye:
- Optimización, compresión y cambio de tamaño de la imagen.
- Concatenación de CSS y JavaScript, minificación y alineación.
- Extensión de caché, división de dominios y reescritura.
- Carga diferida de JS y recursos de imagen.
- y muchos otros…
Actualmente , las plataformas Linux soportadas por módulo mod_pagespeed son RHEL/CentOS/Fedora y Debian/Ubuntu para distribuciones de 32 bits y 64 bits.
Instalación ngx_PageSpeed:
Dependencias:
Estas son las dependencias básicas necesarias para el correcto funcionamiento del modulo:
Ubuntu/Debian:
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev
RedHat, CentOS o Fedora
sudo yum install gcc-c ++ pcre-devel zlib-devel make unzip libuuid-devel
Instrucciones de compilación:
Descarga NGX_PageSpeed:
Ejecuta cada una de las lineas desde el terminal de tu equipo con Nginx.
#[Selecciona la versión que desees en el release notes] NPS_VERSION=1.13.35.1-beta cd wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}.zip unzip v${NPS_VERSION}.zip nps_dir=$(find . -name "*pagespeed-ngx-${NPS_VERSION}" -type d) cd "$nps_dir" NPS_RELEASE_NUMBER=${NPS_VERSION/beta/} NPS_RELEASE_NUMBER=${NPS_VERSION/stable/} psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz [ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL) wget ${psol_url} tar -xzvf $(basename ${psol_url})
Descarga del paquete Nginx y compilado con modulo PageSpeed:
Ejecuta el comando “nginx -v” para obtener la versión instalada del servicio nginx. Si ejecutas este otro comando “nginx -V” visualizaras el listado completo de módulos cargados en nginx. Recomiendo que cargues todos los modulos entre el comando ./configure y el modulo de pagespeed a cargar.
NGINX_VERSION=[Elige una versión en la página de nginx] cd wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz tar -xvzf nginx-${NGINX_VERSION}.tar.gz cd nginx-${NGINX_VERSION}/ ./configure --add-module=$HOME/$nps_dir ${PS_NGX_EXTRA_FLAGS} make sudo make install
La otra opción para cargar el modulo es ejecutar ./configure seguido de la salida del comando “nginx -V” y por ultimo añadir el modulo de pagespeed “–add-module=$HOME/$nps_dir ${PS_NGX_EXTRA_FLAGS}”. Ejemplo:
./configure --prefix=/usr/share --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --modules-path=/usr/share/nginx/modules --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --user=nginx --group=nginx --with-file-aio --with-http_v2_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-openssl=/usr/src/openssl-1.0.2n --add-module=$HOME/$nps_dir ${PS_NGX_EXTRA_FLAGS}
De esta forma evitaras bastantes errores durante el recompilado de nginx.
Finalmente ejecuta el comando “nginx -V” para verificar que se ha cargado el modulo correctamente.
Reiniciar servicio Nginx
Reinicia el servicio para verificar que todo carga y funciona correctamente
Comando:
/etc/init.d/nginx restart
Salida:
[ ok ] Restarting nginx (via systemctl): nginx.service.
Habilitar Mod_PageSpeed en sitio web
Accederemos al fichero de configuración del virtual host y agregue el siguiente comando:
Comando:
pagespeed on;
Después, tan solo deberás configurar las reglas que desees, puedes aprender más sobre ellas en la pagina oficial de pagespeed
Recuerda reiniciar el servidor web nginx después de aplicar cada configuración.