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!