Tutoriales

Cómo instalar el módulo PageSpeed ​​en Ubuntu • Sitio web para estudiantes

En este post veremos cómo instalar el módulo Google PageSpeed ​​en Ubuntu 20.04 | 18.04 con soporte HTTP Nginx.

El módulo PageSpeed ​​es un código abierto, respaldado por Apache y creado por Google que ayuda a que las páginas web se carguen más rápido al reescribirlas para mejorar la latencia y disminuir el ancho de banda.

El módulo PageSpeed ​​se creó hace mucho tiempo y probablemente no lo verá instalado en mis páginas web online hoy. Pero el concepto detrás de él sigue siendo relevante hoy en día. El objetivo principal del proyecto PageSpeed ​​era optimizar los sitios web automáticamente, creando así una mejor experiencia web en cualquier dispositivo.

Si actualmente tiene un sitio web y desea brindarle a su usuario una mejor experiencia optimizando sus páginas web, el módulo PageSpeed ​​debería ser un excelente lugar para comenzar.

Lo uso en este sitio y está funcionando muy bien para mi audiencia.

Para obtener más información sobre el módulo PageSpeed, consulte su sitio web aquí.

Para comenzar a instalar el módulo PageSpeed ​​en Ubuntu con soporte Nginx, sigue los pasos a continuación:

Instalar paquetes requeridos

Estos paquetes son necesarios para compilar y construir módulos PageSpeed ​​en Ubuntu. Ejecute los siguientes comandos para instalar los siguientes paquetes:

sudo apt update
sudo apt install libssl-dev libxslt-dev libgd-dev curl nano

Después de instalar los paquetes anteriores, continúe a continuación.

Instalar el servidor HTTP Nginx

Ahora que los paquetes anteriores están instalados, ejecute los siguientes comandos para instalar el servidor HTTP Nginx en Ubuntu. Instalar Nginx en Ubuntu es bastante sencillo. Los paquetes estables de Nginx están disponibles en los repositorios predeterminados de Ubuntu.

Simplemente ejecute los siguientes comandos para instalar Nginx.

sudo apt install nginx

Por algunas razones, Ubuntu instalado Nginx no funcionó bien cuando construí los módulos de PageSpeed. En ese caso, actualice a la versión del repositorio oficial de Nginx.

Ejecute los siguientes comandos para instalar el paquete compatible.

sudo apt install gnupg2 ca-certificates lsb-release

Luego agrega el repositorio

echo "deb http://nginx.org/packages/ubuntu lsb_release -cs nginx" | sudo tee/etc/apt/sources.list.d/nginx.list

y clave:

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

Después de eso, actualice ejecutando los siguientes comandos:

sudo apt update
sudo apt install nginx

Después de instalar Nginx, también querrá instalar la versión. Necesitará este número de versión para crear los paquetes PageSpeed ​​correctos para Nginx.

Para encontrar el número de versión de Nginx, ejecute los siguientes comandos:

nginx -v

Eso mostrará líneas similares a las que se muestran a continuación:

nginx version: nginx/1.20.0

También querrá saber qué módulos y argumentos están actualmente habilitados y construidos con Nginx. Queremos usar la misma configuración cuando volvamos a compilar Nginx con soporte de PageSpeed.

Para encontrar los argumentos y los módulos de instalación actuales de Nginx, ejecute los siguientes comandos:

nginx -V

Eso debería mostrar una línea similar a la siguiente:

--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt="-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.20.0/debian/debuild-base/nginx-1.20.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC" --with-ld-opt="-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie"

Copie toda la línea anterior y guárdela en un lugar al que pueda acceder fácilmente. Usaremos la línea de arriba a continuación cuando compilemos el módulo PageSpeed ​​en Nginx.

Instalar el módulo PageSpeed

Ahora que tiene toda la información que necesita, ejecute los siguientes comandos para comenzar a compilar PageSpeed ​​con Nginx.

bash <(curl -f -L -sS https://ngxpagespeed.com/install) --nginx-version 1.20.0

Reemplace el número de versión de Nginx con el número correspondiente actualmente instalado en su sistema. Cuando ejecute el comando desde su directorio de inicio, descargará los paquetes de PageSpeed ​​dentro de su carpeta de inicio.

Para este tutorial, los paquetes se descargaron en mi / inicio / richard carpeta llamada incubator-pagespeed-ngx-latest-stable.

/home/richard/incubator-pagespeed-ngx-latest-stable

Necesitará la ruta anterior al compilar Nginx para agregar el módulo PageSpeed.

Durante la compilación, se le pedirá que configure argumentos adicionales para Nginx. ¿Recuerda la carpeta PageSpeed ​​creada en su directorio personal?

About to build nginx.  Do you have any additional ./configure
arguments you would like to set?  For example, if you would like
to build nginx with https support give --with-http_ssl_module
If you don't have any, just press enter.
> 

Incluya la carpeta en el proceso de construcción. Entonces se verá así:

--add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable

Ahora, cuando se le solicite durante la compilación, combine la ruta anterior y la salida del módulo original de Nginx y los argumentos como se muestra arriba. Toda la línea debería verse así:

--add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt="-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.20.0/debian/debuild-base/nginx-1.20.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC" --with-ld-opt="-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie"

Cuando vuelva a solicitarlo, elija Y por si.

You have set --with-debug for building nginx, but precompiled Debug binaries for
PSOL, which ngx_pagespeed depends on, aren't available.  If you're trying to
debug PSOL you need to build it from source.  If you just want to run nginx with
debug-level logging you can use the Release binaries.

Use the available Release binaries? [Y/n] Y

Con para que la construcción se complete.

Una vez completada la compilación, el módulo PageSpeed ​​debe incluirse con Nginx. Puede probar ejecutando los siguientes comandos:

nginx -V

Ahora debería generar una línea con su directorio de inicio apuntando a la carpeta PageSpeed.

nginx version: nginx/1.20.0
built by gcc 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) 
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --add-module=/home/richard/incubator-pagespeed-ngx-latest-stable --add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules

A continuación, habilite los módulos de PageSpeed ​​y cree un enlace simbólico para los módulos de Nginx.

sudo cp ~/nginx-1.20.0/objs/*.so /etc/nginx/modules
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules

Finalmente, agregue este bloque de PageSpeed ​​inicial al bloque del servidor Nginx del sitio web que desea mejorar. En cada bloque de servidor donde PageSpeed ​​está habilitado, agregue:

server {
...
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" {
  add_header "" "";
}
location ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
...
}

Guarde la salida del archivo y vuelva a cargar Nginx

sudo systemctl reload nginx

Pruebe la configuración de PageSpeed.

curl -I -p http://example.com

Debería ver una salida similar a la siguiente

HTTP/1.1 200 OK
Server: nginx/1.20.0
Date: Sat, 15 May 2021 14:58:16 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 20 Apr 2021 13:35:47 GMT
X-Page-Speed: 1.13.35.2-0 
Cache-Control: max-age=0, no-cache

Deberias hacer eso. Más configuraciones de PageSpeed ​​están disponibles en su sitio web. Visite el sitio y encuentre más opciones de configuración.

Filtros de PageSpeed ​​(modpagespeed.com)

Conclusión:

En este tutorial hemos visto cómo instalar el módulo PageSpeed ​​en Ubuntu con el servidor HTTP Nginx. Si encuentra algún error arriba, utilice el formulario de comentarios a continuación para informar.

También te puede gustar la publicación a continuación:

Leave a Comment

You may also like