Ricerca nel sito web

Come installare Nginx con Google PageSpeed su Ubuntu 20.04


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 15.04 (Vivid Vervet)

Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa il server web Nginx
  4. Scarica e compila ngx_pagespeed
  5. Configura Nginx per utilizzare il modulo ngx_pagespeed
  6. Verifica il modulo ngx_pagespeed
  7. Conclusione

Nginx è un server Web gratuito e open source che alimenta molti siti su Internet. Può essere utilizzato come proxy inverso e bilanciamento del carico. È 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 il tempo di risposta del sito web.

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

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Un nome di dominio valido indicato con l'IP del tuo server. In questo tutorial, useremo il dominio example.com.
  • Il server è configurato con una password di root.

Iniziare

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

apt-get update -y

Una volta installati tutti i pacchetti, dovrai installare alcune dipendenze richieste sul tuo 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.

Installa il server web Nginx

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.

Scarica e compila ngx_pagespeed

Prima di scaricare e compilare ngx_pagespeed. Dovrai scaricare il sorgente Nginx nel tuo sistema. Puoi scaricare il pacchetto sorgente Nginx con il seguente comando:

Nota: assicurarsi che la versione di Nginx scaricata 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.

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 -xvzf nginx-1.18.0.tar.gz

Successivamente, scarica il sorgente 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 sopra, cat 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

Quindi, estrai il file scaricato con il seguente comando:

tar -xvzf 1.13.35.2-x64.tar.gz

Successivamente, modifica la directory nell'origine Nginx 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"

Successivamente, esegui il comando seguente 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 puoi procedere al passaggio successivo.

Configura 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

Aggiungere 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

Impostare 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 della velocità della pagina:

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;

 }

Salva e chiudi il file quando hai finito. Quindi, verifica Nginx per eventuali errori 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 usando 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 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 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 26 05:32:23 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

Una volta terminato, puoi procedere al passaggio successivo.

Verifica 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://example.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
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

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

Conclusione

Congratulazioni! hai installato correttamente ngx_pagespeed con Nginx sul server Ubuntu 20.04. Spero che questo modulo aumenti le prestazioni del tuo server web Nginx e acceleri il sito web. Non esitate a chiedermi se avete domande.