Installazione del modulo PageSpeed per Nginx su Debian 9

Come compilare Nginx con ngx_pagespeed per l'ottimizzazione automatica delle prestazioni del sito.

ngx_pagespeed è un modulo Nginx che ottimizza automaticamente le tue pagine web — comprime le immagini, minifica CSS e JavaScript, gestisce il caching e molto altro — senza modificare una singola riga del codice del tuo sito.

Prima di iniziare

Questa guida prevede la ricompilazione di Nginx dai sorgenti. Assicurati di avere un backup della tua configurazione Nginx attuale e annota i flag di compilazione esistenti — ti serviranno.

Installazione delle dipendenze di compilazione

sudo apt-get build-dep nginx
sudo apt-get update
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev

Creazione della directory di lavoro

mkdir ~/custom-nginx
cd ~/custom-nginx

Download dei sorgenti di Nginx

Verifica quale versione di Nginx è attualmente in esecuzione:

nginx -v
nginx version: nginx/1.18.0

Scarica l'archivio sorgente corrispondente dal sito ufficiale di Nginx:

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

Configurazione di ngx_pagespeed

Spostati nella directory dei moduli di Nginx:

cd nginx-1.18.0/src/http/modules/

Scarica ngx_pagespeed dal suo repository GitHub:

sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip
sudo unzip master.zip
sudo mv incubator-pagespeed-ngx-master ngx_pagespeed
cd ngx_pagespeed

Scarica le PageSpeed Optimization Libraries (psol) — necessarie per la compilazione:

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

Compilazione di Nginx con il modulo pagespeed

Torna nella directory dei sorgenti di Nginx:

cd ~/custom-nginx/nginx-1.18.0/

Verifica prima i flag di compilazione con cui è stato compilato il tuo Nginx attuale — dovrai replicarli:

nginx -V

Esegui ./configure con gli stessi flag, aggiungendo --add-module alla fine:

sudo ./configure \
  --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 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' \
  --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' \
  --add-module=./src/http/modules/ngx_pagespeed/

Usa sempre i flag dell'output del tuo nginx -V — potrebbero differire dall'esempio precedente in base a come è stato compilato il pacchetto sul tuo sistema.

Compila e installa:

sudo make
sudo make install

Abilitazione di ngx_pagespeed

Crea una directory di cache per il modulo:

sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R www-data:www-data /var/ngx_pagespeed_cache

Apri la configurazione principale di Nginx:

sudo nano /etc/nginx/nginx.conf

Aggiungi quanto segue all'interno del blocco http:

##
# Pagespeed Settings
##
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

In ogni blocco server, aggiungi queste regole di location:

# Instrada correttamente le richieste per le risorse ottimizzate da pagespeed
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
    add_header "" "";
}
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Riavvia Nginx per applicare le modifiche:

sudo service nginx restart

Verifica dell'installazione

Controlla che il modulo compaia nei flag di compilazione:

sudo /usr/sbin/nginx -V

Nell'output dovresti vedere --add-module=./src/http/modules/ngx_pagespeed/.

Conferma quindi che il modulo sia effettivamente in esecuzione ispezionando gli header di risposta:

curl -I -p YOUR_SERVER_IP

Un'installazione riuscita includerà un header X-Page-Speed nella risposta:

HTTP/1.1 200 OK
Server: nginx
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

Quell'header è la tua conferma: ngx_pagespeed è installato e funzionante.

Aiuto

Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!

Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci