page-speed-nginx

Modulo mod_pagespeed per Nginx: rendi il tuo sito più veloce che mai!

Indice dei contenuti

Mod_pagespeed per NginxTutto quello che devi sapere sul modulo mod_pagespeed per Nginx, che renderà il tuo sito più veloce che mai!

Il modulo mod_pagespeed per Nginx e Apache  ha lo scopo di incrementare le prestazioni dei siti web senza doverne modificare il codice . Questo obiettivo viene raggiunto automatizzando le ottimizzazioni relative all’erogazione di risorse come codice HTML, CSS, JavaScript ed immagini.

Più nel dettaglio mod_pagespeed permette di applicare dei “filters”, ciascuno dei quali implementa una serie di best practices che consentono di ottenere un notevole miglioramento del tempo di risposta. Il modulo in questione è utilizzabile sui Web Server Apache ed Nginx.

In questo articolo vi spieghiamo come installarlo su Nginx.

Come installare il modulo mod_pagespeed per Nginx

La procedura risulta essere abbastanza semplice, sebbene non immediata come nel caso di Apache, per il quale sono disponibili pacchetti per le principali distribuzioni.

La guida che riportiamo di seguito è stata realizzata utilizzando una distribuzione Debian-based.

1) Il primo passo è relativo all’installazione dei seguenti pacchetti, che saranno necessari alla compilazione di Nginx:

apt-get update
apt-get install libpcre3 libpcre3-dev libssl-dev libxslt1-dev build-essential zlib1g-dev unzip

2) Ora è necessario ottenere il codice del modulo:

cd
NPS_VERSION=<version>
wget https://github.com/pagespeed/ngx_pagespeed/archive/v${NPS_VERSION}-beta.zip
unzip v${NPS_VERSION}-beta.zip
cd ngx_pagespeed-${NPS_VERSION}-beta/
wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz
tar -xzvf ${NPS_VERSION}.tar.gz

NOTA: Nel caso in cui sul server sia già presente una installazione di Nginx è possibile utilizzare il comando:

nginx -V

L’output sarà qualcosa di simile a:

nginx version: nginx/1.6.2 built by gcc 4.9.2 (Debian 4.9.2-10) 
TLS SNI support enabled 
configure arguments: --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid -http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module--with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module

Nella prima riga è possibile trovare la versione di Nginx che attualmente è installata, e nella parte successiva sono presenti le direttive relative ai moduli presenti. Se volete ricompilare la stessa versione di Nginx conservate queste informazioni.

3) A questo punto abbiamo bisogno di scaricare la versione che vogliamo installare di Nginx.
Per farlo è sufficiente eseguire i seguenti comandi:

cd
NGINX_VERSION=<version>
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz

4) Una volta scaricato Nginx non resta che ricompilarlo con le opzioni che ci occorrono, non dimenticando di aggiungere mod_pagespeed:

cd nginx-${NGINX_VERSION}/
./configure --add-module=$HOME/ngx_pagespeed-${NPS_VERSION}-beta
make
make install

NOTA: Se vogliamo ricompilare Nginx con le stesse opzioni presenti è sufficiente utilizzare i dati raccolti al punto 2) ovvero:

./configure --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module--with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module

Per verificare che tutto sia andato a buon fine è sufficiente accedere alla cartella relativa al binario di Nginx che vi è stata mostrata in fase di configurazione e dare il comando:

./nginx -V

A questo punto non resta che aggiornare lo script di avvio di Nginx e variare la configurazione di mod_pagespeed nel file di configurazione che dovrete creare in /etc/nginx/conf.d

È possibile provare il funzionamento del modulo mediante il comando:

curl -I -p http://localhost 2>&1 | grep X-Page-Speed

nel caso in cui mod_pagespeed è configurato correttamente otterrete un output simile al seguente:

X-Page-Speed: 1.10.33.5-0

CONDIVIDI SUI SOCIAL

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

6 + 4 =