C√≥mo instalar Nginx con Google PageSpeed ‚Äč‚Äčen Ubuntu 20.04

C√≥mo instalar Nginx con Google PageSpeed ‚Äč‚Äčen Ubuntu 20.04

Nginx es un servidor web gratuito y de código abierto que alimenta muchos sitios en Internet. Se puede utilizar como proxy inverso y equilibrador de carga. Es conocido por su alto rendimiento y estabilidad.

ngx_pagespeed es un módulo Nginx de código abierto que se puede utilizar para optimizar el rendimiento de su sitio web. Está desarrollado por Google y reduce el tiempo de carga de la página y acelera el tiempo de respuesta del sitio web.

En este tutorial, le mostraremos cómo compilar ngx_pagespeed como un módulo dinámico con Nginx en el servidor Ubuntu 20.04.

requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Un nombre de dominio v√°lido apuntado con la IP de su servidor. En este tutorial, usaremos el dominio example.com.
  • Se configura una contrase√Īa de root en el servidor.

Empezando

Antes de comenzar, deber√° actualizar los paquetes de su sistema a la √ļltima versi√≥n. Puede actualizarlos ejecutando el siguiente comando:

apt-get update -y

Una vez que todos los paquetes estén instalados, deberá instalar algunas dependencias requeridas en su sistema. Puede instalarlos todos con el siguiente comando:

apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 git libpcre3-dev unzip -y

Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.

Instalar el servidor web Nginx

A continuación, deberá instalar el servidor web Nginx en su sistema. Puedes instalarlo con el siguiente comando:

apt-get install nginx -y

Una vez completada la instalación, puede verificar la versión instalada de Nginx con el siguiente comando:

nginx -v

Debería ver la versión de Nginx en el siguiente resultado:

nginx version: nginx/1.18.0 (Ubuntu)

Una vez que haya terminado, puede continuar con el siguiente paso.

Descargar y compilar ngx_pagespeed

Antes de descargar y compilar ngx_pagespeed. Deber√° descargar la fuente de Nginx en su sistema. Puede descargar el paquete fuente de Nginx con el siguiente comando:

Nota: Aseg√ļrese de que la versi√≥n de Nginx descargada coincida con la versi√≥n de Nginx instalada. Aqu√≠, la versi√≥n instalada de Nginx es 1.18.0. Por lo tanto, deber√° descargar la fuente de Nginx de la versi√≥n 1.18.0 del sitio web de Nginx.

wget http://nginx.org/download/nginx-1.18.0.tar.gz

Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:

tar -xvzf nginx-1.18.0.tar.gz

A continuación, descargue la fuente ngx_pagespeed del repositorio de Git con el siguiente comando:

git clone https://github.com/apache/incubator-pagespeed-ngx.git

Una vez que se complete la descarga, cambie el directorio al directorio descargado y verifique la versión estable con el siguiente comando:

cd incubator-pagespeed-ngx
git checkout latest-stable

Deberías obtener el siguiente resultado:

Note: switching to 'latest-stable'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c 

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 11ba8ea54 Update PSOL_BINARY_URL

De la salida anterior, seleccione el archivo ¬ęPSOL_BINARY_URL¬Ľ para ver la URL de descarga de PSOL:

cat PSOL_BINARY_URL

Deberías obtener el siguiente resultado:

https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz

Ahora, ejecute el siguiente comando para descargar PSOL usando la URL anterior:

wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz

A continuación, extraiga el archivo descargado con el siguiente comando:

tar -xvzf 1.13.35.2-x64.tar.gz

Luego, cambie el directorio a la fuente de Nginx e instale todas las dependencias requeridas con el siguiente comando:

cd /root/nginx-1.18.0
apt-get build-dep nginx
apt-get install uuid-dev

Luego, compile el módulo ngx_pagespeed con el siguiente comando:

./configure --with-compat --add-dynamic-module=/root/incubator-pagespeed-ngx

Deberías obtener el siguiente resultado:

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

  nginx 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"

A continuación, ejecute el siguiente comando para construir el módulo Pagespeed:

make modules

A continuación, copie el módulo generado en el directorio de módulos de Nginx: Publicidad

cp objs/ngx_pagespeed.so /usr/share/nginx/modules/

En este punto, el módulo ngx_pagespeed está compilado en su sistema. Ahora puede continuar con el siguiente paso.

Configurar Nginx para usar el módulo ngx_pagespeed

A continuación, deberá configurar Nginx para usar el módulo ngx_pagespeed. Primero, edite el archivo de configuración principal de Nginx y defina la ruta del módulo ngx_pagespeed:

nano /etc/nginx/nginx.conf

Agregue la siguiente línea al principio del archivo:

load_module modules/ngx_pagespeed.so;

Guarde y cierre el archivo cuando haya terminado.

A continuación, cree un directorio para cachés de velocidad de página con el siguiente comando:

mkdir -p /var/ngx_pagespeed_cache

Establezca la propiedad adecuada con el siguiente comando:

chown -R www-data:www-data /var/ngx_pagespeed_cache

A continuación, edite el archivo de configuración de host virtual predeterminado de Nginx y agregue la configuración de velocidad de página:

nano /etc/nginx/sites-available/default

Reemplazó todas las líneas con las siguientes líneas:

server {
     listen 80;
     server_name example.com; 

     root /var/www/html;
     index index.nginx-debian.html index.html index.htm;

     access_log   /var/log/nginx/access.log;
     error_log    /var/log/nginx/error.log;

     location / {
         try_files $uri $uri/ =404;
     }

     pagespeed on;
     pagespeed FileCachePath "/var/ngx_pagespeed_cache/";
     pagespeed RewriteLevel OptimizeForBandwidth;

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

     location ~ "^/pagespeed_static/" { }
     location ~ "^/ngx_pagespeed_beacon$" { }
pagespeed RewriteLevel CoreFilters;

 }

Guarde y cierre el archivo cuando haya terminado. Luego, verifique Nginx por cualquier error de sintaxis usando el siguiente comando:

nginx -t

Deberías obtener el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Finalmente, reinicie el servicio Nginx para aplicar los cambios:

systemctl restart nginx

También puede verificar el estado del servicio Nginx usando el siguiente comando:

systemctl status nginx

Deberías obtener el siguiente resultado:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-11-26 05:32:23 UTC; 20s ago
       Docs: man:nginx(8)
    Process: 363 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 385 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 386 (nginx)
      Tasks: 3 (limit: 2353)
     Memory: 14.4M
     CGroup: /system.slice/nginx.service
             ??386 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??387 nginx: worker process
             ??388 nginx: worker process

Nov 26 05:32:23 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 26 05:32:23 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Una vez que haya terminado, puede continuar con el siguiente paso.

Verifique el módulo ngx_pagespeed

En este punto, Nginx está configurado con compatibilidad con ngx_pagespeed. Ahora, es hora de probarlo, ya sea que esté instalado o no.

Para probar la velocidad de la p√°gina, ejecute el siguiente comando especificando su nombre de dominio:

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

Si todo está bien, debería obtener el siguiente resultado:

HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Date: Wed, 25 Nov 2020 11:58:56 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

En la salida anterior, Velocidad de p√°gina X: 1.13.35.2-0 significa que PageSpeed ‚Äč‚Äčest√° activo y optimizando su sitio web.

Conclusión

¡Felicidades! ha instalado con éxito ngx_pagespeed con Nginx en el servidor Ubuntu 20.04. Espero que este módulo aumente el rendimiento de su servidor web Nginx y acelere el sitio web. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *