gzip /GNU Zip) è un software libero per la compressione dei dati di notevole interesse per migliorare la velocità e le prestazioni dei siti web forniti da un web server Linux. Le pagine vengono compresse prima di essere inviate all’utente, il cui browser poi le decomprimerà: questa operazione è generalmente più rapida che trasferire pagine non compresse.
Per chi ha un server Linux dotato di Plesk ecco i comandi da utilizzare per abilitare gzip su tutto il server, distinguo in 2 casi a seconda che sia utilizzato il web server Apache o Nginx. E’ necessario ovviamente un accesso da amministratore via SSH su terminale.
Apache
Verificare che sia presente il modulo deflate con il comando (su CentOS, su Debian o Ubuntu usare apachectl al posto di httpd):
httpd -M | grep deflate
se presente il terminale mostrerà una risposta del genere:
altrimenti da Plesk si può attivare comodamente dal pannello delle impostazioni:
ora se non presente bisogna creare il file deflate.conf (su CentOS, per Debian o Ubuntu tenere presente che al posto di httpd il servizio si chiama apache2, e il percorso per il file deflate.conf è /etc/apache2/mods-available/ ):
touch /etc/httpd/conf.d/deflate.conf
e modificarlo con l’editor VI (o con quello che preferite):
vi /etc/httpd/conf.d/deflate.conf
inserendo il seguente codice:
<IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for really old browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>
salvare e uscire da VI (comando :wq );
Nel caso di Apache 2.4 occorre verificare che sia presente il modulo filter_module:
- su CentOS
grep -ir "mod_filter.so" /etc/httpd/conf.modules.d/00-base.conf
- su Debian o Ubuntu:
apachectl -M | grep filter
A questo punto riavviare il servizio:
service httpd restart
Nginx
Creare il file gzip.conf:
touch /etc/nginx/conf.d/gzip.conf
Aprire il file con VI (o un altro editor testuale):
vi /etc/nginx/conf.d/gzip.conf
e ora aggiungere la configurazione di gzip (qui un esempio, maggiori indicazioni si possono trovare sulla documentazione di nginx):
gzip on; gzip_disable "MSIE [1-6]\\.(?!.*SV1)"; gzip_proxied any; gzip_comp_level 5; gzip_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/rss+xml text/javascript image/x-icon image/bmp image/svg+xml; gzip_vary on;
ora verificare che sia tutto corretto:
nginx -t
e quindi riavviare il servizio:
service nginx reload