Come installare Nginx con Google PageSpeed ​​su Ubuntu 20.04

9 dic 2020 6 min di lettura
Come installare Nginx con Google PageSpeed ​​su Ubuntu 20.04
Indice dei contenuti

Introduzione

Nginx è un server web gratuito e open source utilizzato per molti siti su Internet. Può essere utilizzato come proxy inverso e load balancer. È noto per le sue alte prestazioni e stabilità.

ngx_pagespeed è un modulo Nginx open source che può essere utilizzato per ottimizzare le prestazioni del tuo sito web. È sviluppato da Google e riduce il tempo di caricamento della pagina e accelera i tempi di risposta del sito web.

In questo tutorial, ti mostreremo come compilare ngx_pagespeed come modulo dinamico con Nginx sul server Ubuntu 20.04 LTS Focal Fossa.

Prerequisiti

  • Un server che esegue Ubuntu 20.04 LTS Focal Fossa.
  • Un nome di dominio valido puntato con l'IP del server.
  • Utente root.

Se desideri installare Nginx con Google PageSpeed su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh root@IP_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh nome_utente@IP_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Installare le dipendenze

Prima di iniziare, sarà necessario aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornarli eseguendo il seguente comando:

apt-get update -y

Una volta installati tutti i pacchetti, sarà necessario installare alcune dipendenze richieste sul sistema. Puoi installarli tutti con il seguente comando:

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

Una volta installati tutti i pacchetti, puoi procedere al passaggio successivo.

Installare Nginx Webserver

Successivamente, dovrai installare il server Web Nginx sul tuo sistema. Puoi installarlo con il seguente comando:

apt-get install nginx -y

Una volta completata l'installazione, puoi verificare la versione installata di Nginx con il seguente comando:

nginx -v

Dovresti vedere la versione di Nginx nel seguente output:

nginx version: nginx/1.18.0 (Ubuntu)

Una volta terminato, puoi procedere al passaggio successivo.

Scaricare e compilare ngx_pagespeed

Prima di scaricare e compilare ngx_pagespeed. Dovrai scaricare il sorgente Nginx nel tuo sistema.

Nota: assicurati che la versione di Nginx sottoposta a downlaod corrisponda alla versione di Nginx installata. Qui, la versione installata di Nginx è 1.18.0. Quindi dovrai scaricare il sorgente Nginx della versione 1.18.0 dal sito web di Nginx.

Puoi scaricare il pacchetto sorgente Nginx con il seguente comando wget:

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

Una volta completato il download, estrai il file scaricato con il seguente comando tar:

tar -xvzf nginx-1.18.0.tar.gz

Successivamente, scarica il codice sorgente di ngx_pagespeed dal repository Git con il seguente comando:

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

Una volta completato il download, cambia la directory nella directory scaricata e controlla la versione stabile con il seguente comando:

cd incubator-pagespeed-ngx
git checkout latest-stable

Dovresti ottenere il seguente output:

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

Dall'output precedente, seleziona il file PSOL_BINARY_URL per vedere l'URL di download di PSOL:

cat PSOL_BINARY_URL

Dovresti ottenere il seguente output:

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

Ora, esegui il seguente comando per scaricare PSOL utilizzando l'URL sopra:

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

Successivamente, estrai il file scaricato con il seguente comando:

tar -xvzf 1.13.35.2-x64.tar.gz

Successivamente, cambia la directory con il comando cd e installa tutte le dipendenze richieste con il seguente comando:

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

Successivamente, compila il modulo ngx_pagespeed con il seguente comando:

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

Dovresti ottenere il seguente output:

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"

Quindi, esegui il seguente comando per creare il modulo Pagespeed:

make modules

Successivamente, copia il modulo generato nella directory dei moduli Nginx:

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

A questo punto, il modulo ngx_pagespeed è compilato nel tuo sistema. È ora possibile procedere al passaggio successivo.

Configurare Nginx per utilizzare il modulo ngx_pagespeed

Successivamente, dovrai configurare Nginx per utilizzare il modulo ngx_pagespeed. Innanzitutto, modifica il file di configurazione principale di Nginx e definisci il percorso del modulo ngx_pagespeed:

nano /etc/nginx/nginx.conf

Aggiungi la seguente riga all'inizio del file:

load_module modules/ngx_pagespeed.so;

Salva e chiudi il file quando hai finito.

Successivamente, crea una directory per le cache pagespeed con il seguente comando:

mkdir -p /var/ngx_pagespeed_cache

Imposta la proprietà corretta utilizzando il seguente comando:

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

Successivamente, modifica il file di configurazione dell'host virtuale predefinito di Nginx e aggiungi la configurazione ddi pagespeed:

nano /etc/nginx/sites-available/default

Sostituite tutte le righe con le seguenti righe:

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;

 }

Modifica example.com con il tuo nome dominio. Salva e chiudi il file quando hai finito.

Quindi, verifica Nginx per qualsiasi errore di sintassi utilizzando il seguente comando:

nginx -t

Dovresti ottenere il seguente output:

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

Infine, riavvia il servizio Nginx per applicare le modifiche:

systemctl restart nginx

Puoi anche verificare lo stato del servizio Nginx utilizzando il seguente comando:

systemctl status nginx

Dovresti ottenere il seguente output:

● 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 Tue 2020-12-08 23:55:27 CET; 1s ago
       Docs: man:nginx(8)
    Process: 7773 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCE>
    Process: 7783 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 7784 (nginx)
      Tasks: 3 (limit: 2286)
     Memory: 22.0M
     CGroup: /system.slice/nginx.service
             ├─7784 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─7785 nginx: worker process

Una volta terminato, puoi procedere al passaggio successivo.

Verificare il modulo ngx_pagespeed

A questo punto, Nginx è configurato con il supporto ngx_pagespeed. Ora è il momento di testarlo se è installato o meno.

Per testare la velocità della pagina, esegui il seguente comando specificando il tuo nome di dominio:

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

Se tutto va bene, dovresti ottenere il seguente output:

HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Content-Type: text/html
Connection: keep-alive
Date: Tue, 08 Dec 2020 22:55:37 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

Nell'output sopra, X-Page-Speed: 1.13.35.2-0 significa che PageSpeed ​​è attivo e ottimizza il tuo sito web.

Conclusione

In questo tutorial abbiamo visto come installare con successo ngx_pagespeed con Nginx sul server Ubuntu 20.04 LTS Focal Fossa.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.