Tutto 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
Articoli correlati:
- Speed Test Tool: quanto è veloce il tuo sito web?
- Magento ancora più veloce con Redis
- Velocizzare un sito web con XHProf
- Sicurezza WordPress: come proteggere il proprio sito con i plugin
- Effettuare l’upgrade da Drupal 7 a Drupal 8: per un sito più performante
- Scegliere lo storage per il server: l’SSD è quello più veloce?