535
contributi
(Parziale riscrittura per buster e bullseye, rimosso supporto per versione < debian 9) |
m (Riscrittura parziale) |
||
Riga 2: | Riga 2: | ||
__TOC__ | __TOC__ | ||
==Introduzione== | ==Introduzione== | ||
PageSpeed è un modulo per il web server Apache2 che permette l’ottimizzazione automatica di pagine Web e altre risorse attraverso l’uso di appositi filtri per la riscrittura delle pagine web al fine di diminuire il tempo di latenza di caricamento delle pagine. Alcuni filtri alterano semplicemente il contenuto HTML, per esempio rimuovendo l'eccesso di spazi bianchi, attributi non necessario o attributi che sarebbero ignorati dal browser. Altri filtri invece cambiano i riferimenti ai file CSS, JavaScript o le immagini al fine di fornire una versione ottimizzata in quanto di peso minore, vengono combinati più files in uno e viene esteso il tempo di vita della cache. Tutto questo viene fatto in modo automatico senza rendere necessario alcun intervento manuale sul server | |||
Il modulo in questione è distribuito sotto licenza [http://www.apache.org/licenses/LICENSE-2.0 Apache 2.0], ma non è incluso nei repository ufficiali Debian a causa dell'utilizzo in bundle di alcune librerie | Il modulo non agisce sul codice ''lato server'', quindi non deve essere visto come una possibile soluzione per migliorare script PHP mal riusciti o per velocizzare query SQL non ottimizzate. | ||
I filtri sono eseguiti sempre in un ordine pre-definito, ma si può scegliere quali abilitare o disabilitare nel file di configurazione. | |||
Il modulo in questione è distribuito sotto licenza [http://www.apache.org/licenses/LICENSE-2.0 Apache 2.0], ma non è incluso nei repository ufficiali Debian a causa dell'utilizzo in bundle di alcune librerie<ref>per una spiegazione delle motivazioni che hanno portato all'esclusione del modulo dai repository Debian si veda, ad esempio, il seguente [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602316 bug report]</ref>. | |||
==Installazione== | ==Installazione== | ||
I Google Labs forniscono un pacchetto DEB di ''mod_pagespeed'' per Debian, sia a 32 bit, sia a 64 bit. Il pacchetto può essere scaricato a questo indirizzo: | I Google Labs forniscono un pacchetto DEB di ''mod_pagespeed'' per Debian, sia a 32 bit, sia a 64 bit. Il pacchetto può essere scaricato a questo indirizzo: | ||
<br /> | <br /> | ||
https://developers.google.com/speed/pagespeed/module | https://developers.google.com/speed/pagespeed/module | ||
Oppure con il seguente comando | |||
<pre> | <pre> | ||
# wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb | # wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb | ||
</pre> | </pre> | ||
Una volta scaricata l'ultima versione del pacchetto:<ref>[https://www.modpagespeed.com/doc/download pagina per il download] </ref> | |||
lo possiamo installare tramite [[gdebi]], installandolo se occorre: | lo possiamo installare tramite [[gdebi]], installandolo se occorre: | ||
<pre> | <pre> | ||
Riga 31: | Riga 38: | ||
L'installazione configura anche un file all'interno della directory <code>/etc/apt/sources.list.d</code>, abilitando un [[repository]] esterno per gli aggiornamenti automatici del modulo. | L'installazione configura anche un file all'interno della directory <code>/etc/apt/sources.list.d</code>, abilitando un [[repository]] esterno per gli aggiornamenti automatici del modulo. | ||
{{Suggerimento|Nel caso in cui un <code>apt-get update</code> | {{Suggerimento|Nel caso in cui un <code>apt-get update</code> fornisca un errore di file Release non firmato a seguito dell'aggiunta del [[repository]] di pagespeed | ||
<pre>W: GPG error: http://dl.google.com/linux/mod-pagespeed/deb stable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 78BD65473CB3BD13 | <pre>W: GPG error: http://dl.google.com/linux/mod-pagespeed/deb stable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 78BD65473CB3BD13 | ||
E: The repository 'http://dl.google.com/linux/mod-pagespeed/deb stable Release' is not signed. | E: The repository 'http://dl.google.com/linux/mod-pagespeed/deb stable Release' is not signed. | ||
N: Updating from such a repository can't be done securely, and is therefore disabled by default. | N: Updating from such a repository can't be done securely, and is therefore disabled by default. | ||
N: See apt-secure(8) manpage for repository creation and user configuration details.</pre> | N: See apt-secure(8) manpage for repository creation and user configuration details.</pre> | ||
Si può risolvere velocemente il problema aggiungendo le chiavi [[GPG]] dei [[repository]] google. | |||
<pre># cd /etc/apt/trusted.gpg.d | <pre># cd /etc/apt/trusted.gpg.d | ||
# wget -O google-archive.pub https://dl-ssl.google.com/linux/linux_signing_key.pub</pre> | # wget -O google-archive.pub https://dl-ssl.google.com/linux/linux_signing_key.pub</pre> | ||
ed infine aggiornare nuovamente l'elenco dei pacchetti sempre con un <code>apt-get update</code>}} | ed infine aggiornare nuovamente l'elenco dei pacchetti sempre con un <code>apt-get update</code>}} | ||
== Configurazione== | == Configurazione== | ||
Dopo l'installazione, può essere utile apportare alcune modifiche alla configurazione del modulo, agendo sul suo file di configurazione principale: | Dopo l'installazione, può essere utile apportare alcune modifiche alla configurazione del modulo, agendo sul suo file di configurazione principale: | ||
Riga 46: | Riga 52: | ||
# nano /etc/apache2/mods-available/pagespeed.conf | # nano /etc/apache2/mods-available/pagespeed.conf | ||
</pre> | </pre> | ||
All'inizio del file | All'inizio del file si dovrebbe trovare le seguenti righe: | ||
<pre> | <pre> | ||
<IfModule pagespeed_module> | <IfModule pagespeed_module> | ||
Riga 53: | Riga 59: | ||
ModPagespeed on | ModPagespeed on | ||
</pre> | </pre> | ||
che indicano che il modulo è attivo. Se al contrario ci fosse la direttiva ''ModPagespeed off'', | che indicano che il modulo è attivo. Se al contrario ci fosse la direttiva ''ModPagespeed off'', si può cambiarla ad ''on'' per attivarlo. | ||
Poco dopo | Poco dopo si dovrebbe trovare la direttiva: | ||
<pre> | <pre> | ||
# ModPagespeedRewriteLevel PassThrough | # ModPagespeedRewriteLevel PassThrough | ||
</pre> | </pre> | ||
La si lasci commentata, infatti l'opzione predefinita per <code>ModPagespeedRewriteLevel</code> è <code>CoreFilters</code> che permette di avere attivati molti filtri di default che sono quelli ritenuti sicuri per la maggior parte delle applicazioni. Un'altra opzione più aggressiva è <code>TestingCoreFilters</code>, che permette di attivare i filtri sperimentali, ma prima di arrischiarsi è bene testare il sito prima di lasciarli in produzione, mentre <code>PassThrough</code> disabiliterà ogni filtro di default<ref>[https://www.modpagespeed.com/doc/config_filters manuale di configurazione dei filtri]</ref>.<br />I filtri di default aggiunti da <code>CoreFilters</code> sono: | |||
*add_head | *add_head | ||
*combine_css | *combine_css | ||
Riga 74: | Riga 80: | ||
*rewrite_javascript | *rewrite_javascript | ||
*rewrite_style_attributes_with_url | *rewrite_style_attributes_with_url | ||
Se vogliamo attivare ulteriori direttive | Se vogliamo attivare ulteriori direttive si può fare aggiungendo dopo la riga | ||
# ModPagespeedEnableFilters collapse_whitespace,elide_attributes | # ModPagespeedEnableFilters collapse_whitespace,elide_attributes | ||
Tra le direttive non fornite di default da <code>CoreFilters</code> è consigliabile aggiungere<pre> ModPagespeedEnableFilters collapse_whitespace,elide_attributes | Tra le direttive non fornite di default da <code>CoreFilters</code> è consigliabile aggiungere<pre> ModPagespeedEnableFilters collapse_whitespace,elide_attributes | ||
Riga 82: | Riga 88: | ||
ModPagespeedEnableFilters hint_preload_subresources | ModPagespeedEnableFilters hint_preload_subresources | ||
</pre> | </pre> | ||
Inoltre si possono aggiustare i permessi per la directory di cache con: | |||
<pre> | <pre> | ||
# chmod -R a+w /var/cache/mod_pagespeed | # chmod -R a+w /var/cache/mod_pagespeed | ||
</pre> | </pre> | ||
Quindi | Quindi si riavvii Apache2 per fargli digerire le modifiche. | ||
<pre> | <pre> | ||
# systemctl reload apache2 | # systemctl reload apache2 | ||
</pre> | </pre> | ||
==Virtual Host== | ==Virtual Host== | ||
La configurazione precedente applica le stesse impostazioni di ''mod_pagespeed'' a tutti i Virtual Host presenti sul | La configurazione precedente applica le stesse impostazioni di ''mod_pagespeed'' a tutti i Virtual Host presenti sul server. È però possibile applicare configurazioni personalizzate per ogni Virtual Host, agendo sul file di configurazione del Virtual Host stesso: | ||
<pre> | <pre> | ||