Cómo configurar Nginx con el módulo Google Pagespeed en Debian 11
Google Pagespeed Module es un módulo de código abierto para optimizar sus sitios web en el servidor web Nginx y Apache. El módulo Pagespeed es un módulo de nivel de servidor instalado junto con el servidor web Nginx y Apache.
El módulo Pagespeed mejora el rendimiento y la velocidad de su sitio web al optimizar los archivos estáticos en sus sitios web. El módulo Pagespeed optimiza las imágenes en sus sitios web, minimiza los archivos estáticos como HTML, CSS y JavaScript, y optimiza el almacenamiento en caché de archivos.
En este tutorial, le mostraremos cómo compilar el módulo Nginx Pagespeed en la versión más reciente de Debian 11 Bullseye. Esta guía se puede aplicar a la instalación actual de Nginx porque solo construye el módulo Nginx.
Requisitos previos
Antes de comenzar, asegúrese de tener los siguientes requisitos.
- Sistema operativo: Debian 11 Bullseye
- Privilegios de raíz
Ahora empecemos.
Instalación de dependencias de paquetes
Primero, instalará dependencias de paquetes para compilar el módulo Nginx.
1. Ejecute el comando apt a continuación para actualizar los repositorios actuales en su sistema.
sudo apt update
2. Luego, instale las dependencias de paquetes básicos para compilar programas usando el comando apt a continuación.
sudo apt install curl dpkg-dev build-essential zlib1g-dev git libpcre3 git libpcre3-dev unzip uuid-dev -y
3. Después de eso, instale las dependencias de compilación para compilar el módulo Nginx.
sudo apt build-dep nginx -y
Comprobación de la versión actual de Nginx
Para crear un módulo Nginx Pagespeed personalizado, asegúrese de que su servidor web Nginx actual mantenga la misma versión del código fuente de Nginx que usará para crear el módulo Nginx. Además, es esencial entender qué representa cada parte de la versión de Nginx, por ejemplo, «nginx/1.18.0 (ubuntu) que significa». En este caso, indica que se está utilizando la versión 1.18.0 de Nginx y que ha sido compilada para una distribución Ubuntu.
1. Ejecute el siguiente comando para comprobar la versión de Nginx.
nginx -v
Para este ejemplo, la versión actual de Nginx instalada en nuestra máquina es ‘1.18.0’. A continuación se muestra el resultado similar que verá.
nginx version: nginx/1.18.0
Opcionalmente, si no tiene el paquete Nginx en su sistema, instálelo desde el repositorio oficial de Debian usando el comando apt a continuación.
sudo apt install nginx -y
2. A continuación, cree una nueva variable de entorno temporal para su versión de Nginx con el siguiente comando.
export NG_VER=1.18.0
Descarga el código fuente de Nginx y Pagespeed
En este paso, descargará el código fuente de Nginx y el módulo Pagespeed a su servidor. Este código fuente de Nginx tendrá la misma versión que su paquete Nginx actual.
1. Cree un nuevo directorio de proyecto ‘/usr/src/nginx’ y acceda a él.
mkdir -p /usr/src/nginx; cd /usr/src/nginx
2. Ahora ejecute el siguiente comando para descargar el código fuente de Nginx y extráigalo.
wget http://nginx.org/download/nginx-$NG_VER.tar.gz
tar -xzvf nginx-$NG_VER.tar.gz
3. A continuación, clone el módulo Nginx Pagespeed en el directorio actual y, una vez que se complete el proceso, verá un nuevo directorio ‘incubator-pagespeed-ngx’.
git clone https://github.com/apache/incubator-pagespeed-ngx.git
4. Vaya al directorio ‘incubator-pagespeed-ngx’ y cambie a la rama estable del módulo Nginx Pagespeed.
cd incubator-pagespeed-ngx/
git checkout latest-stable
5. Verifique el archivo ‘PSOL_BINARY_URL’ para obtener el enlace de descarga de la biblioteca de optimización de páginas (PSOL). Esta biblioteca es necesaria para el módulo Nginx Pagespeed.
cat PSOL_BINARY_URL
Verá una salida similar a la siguiente. La variable ‘$BIT_SIZE_NAME’ es la arquitectura de su servidor.
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
6. Ahora cree una nueva variable de entorno temporal ‘BIT_SIZE_NAME’ con el valor de la arquitectura de su servidor. El siguiente ejemplo utiliza una arquitectura de servidor ‘x64’ o de 64 bits.
export BIT_SIZE_NAME=x64
7. Ahora descargue el código fuente de PSOL y extráigalo.
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
tar -xzvf 1.13.35.2-$BIT_SIZE_NAME.tar.gz
Ahora está listo para construir el módulo Nginx Pagespeed.
Compilación del módulo Pagespeed de Nginx
En este paso, compilará el módulo Nginx Pagespeed. Al final, obtendrá el módulo Nginx con el formato ‘.so’ que puede aplicar a su servidor web Nginx actual.
1. Cambie el directorio de trabajo al directorio del proyecto Nginx.
cd /usr/src/nginx/nginx-$NG_VER
2. Ejecute el siguiente comando para configurar la compilación de su módulo Nginx. Este comando también verifica los requisitos de su sistema, asegúrese de que no tenga ningún error.
./configure --with-compat --add-dynamic-module=../incubator-pagespeed-ngx
A continuación se muestra la salida que debe obtener.
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib librarynginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
3. A continuación, compile el módulo Nginx Pagespeed con el siguiente comando.
make modules
Este comando llevará algún tiempo, dependiendo de las CPU y la memoria de su sistema.
4. Una vez que finaliza el proceso de compilación, su módulo Pagespeed está disponible como ‘objs/ngx_pagespeed.so’. Verifique el módulo usando el siguiente comando.
ls objs/ngx_pagespeed.so
Debería obtener el módulo Nginx Pagespeed ‘ngx_pagespeed.so’ como se muestra a continuación.
-rwxr-xr-x 1 root root 19M Dec 8 21:44 objs/ngx_pagespeed.so
Adición del módulo Pagespeed a la instalación actual de Nginx
En este paso, implementará el módulo Nginx Pagespeed en su instalación actual de Nginx. Para hacerlo, copie el módulo de Pagespeed ‘ngx_pagespeed.so’ en el directorio del módulo Nginx y agregue una nueva configuración para habilitarlo.
1. Copie el módulo ‘ngx_pagespeed.so’ en el directorio de módulos Nginx predeterminado ‘/usr/share/nginx/modules’.
cp /usr/src/nginx/nginx-$NG_VER/objs/ngx_pagespeed.so /usr/share/nginx/modules
2. Cree un nuevo archivo de configuración para habilitar el módulo Pagespeed.
nano /usr/share/nginx/modules-available/ngx-pagespeed.conf
Copie y pegue la siguiente configuración.
load_module modules/ngx_pagespeed.so;
Guarde la configuración y salga.
3. Active el módulo Pagespeed creando una configuración de enlace simbólico ‘ngx-pagespeed.conf’ en el directorio ‘/etc/nginx/modules-enabled/’.
ln -s /usr/share/nginx/modules-available/ngx-pagespeed.conf /etc/nginx/modules-enabled/70-ngx-pagespeed.conf
4. A continuación, cree una nueva configuración ‘pagespeed.conf’ en el directorio ‘/etc/nginx’.
nano /etc/nginx/pagespeed.conf
Copie y pegue la siguiente configuración.
pagespeed on;# Needs to exist and be writable by nginx. Use tmpfs for best performance.
pagespeed FileCachePath /var/ngx_pagespeed_cache;# Ensure requests for pagespeed optimized resources go to the pagespeed handler
# and no extraneous headers get set.
location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" {
add_header "" "";
}
location ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
Guarde la configuración y salga.
5. A continuación, cree un nuevo directorio para almacenar la memoria caché Nginx Pagespeed y asegúrese de que el usuario «www-data» de Nginx pueda escribir en el directorio.
mkdir -p /var/ngx_pagespeed_cache
chown www-data:www-data /var/ngx_pagespeed_cache
Ahora el módulo Nginx Pagespeed se agrega a su instalación actual de Nginx. Vaya al siguiente paso para habilitarlo en sus hosts virtuales (bloques de servidor).
Adición del módulo Nginx Pagespeed en su host virtual
Para habilitar el módulo Pagespeed en su host virtual, agregue la configuración ‘pagespeed.conf’ a su archivo de configuración de host virtual usando la opción ‘incluir’.
1. Para este ejemplo, agregue habilitar el módulo Pagespeed al host virtual ‘predeterminado’. Edite la configuración ‘/etc/nginx/sites-disponible/default’ usando el editor nano.
nano /etc/nginx/sites-available/default
Agregue la configuración ‘include /etc/nginx/pagespeed.conf;’ dentro de la sección ‘servidor {…}’ como se muestra a continuación.
server {..... ....
include /etc/nginx/pagespeed.conf;
}
Guarde la configuración y salga.
2. Verifique su configuración de Nginx y asegúrese de que no reciba ningún error. Después de eso, reinicie el servicio Nginx para aplicar una nueva configuración.
nginx -t
sudo systemctl restart nginx
Verificación del módulo Pagespeed de Nginx
Para verificar la instalación e implementación del módulo Nginx Pagespeed, puede usar el comando curl para obtener los encabezados HTTP de su servidor web Nginx o usar el elemento Inspeccionar en su navegador web.
1. Ejecute el comando curl a continuación para obtener los encabezados HTTP de su servidor web Nginx.
curl -I https://domain.com/
Ahora debería obtener la salida como se muestra a continuación. La sección de encabezado adicional ‘X-Page-Speed’ significa que el módulo Nginx Pagespeed está habilitado.
HTTP/1.1 200 OK
Server: nginx/1.18.0
Content-Type: text/html
Connection: keep-alive
Date: Wed, 01 Dec 2021 22:02:52 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache
2. Para verificar desde su navegador web, visite su nombre de dominio y haga clic derecho en la página, luego seleccione ‘Inspeccionar‘ menú.
Vuelva a cargar su página web y verá encabezados HTTP detallados como se muestra a continuación.
Conclusión
¡Felicidades! Ha aprendido a compilar el módulo Nginx Pagespeed e implementarlo en la instalación actual de Nginx en Debian 11 Bullseye. Solo necesita incluir la configuración ‘pagespeed.conf’ en la configuración de su host virtual para optimizar su sitio web y mejorar su rendimiento con esta poderosa herramienta.