Incrementare le prestazioni di Apache con mod pagespeed: differenze tra le versioni
(Aggiornato con le nuove impostazioni di default (è inutile esplicitare altre opzioni)) |
mNessun oggetto della modifica |
||
Riga 9: | Riga 9: | ||
<br /> | <br /> | ||
https://developers.google.com/speed/pagespeed/module<br /> | https://developers.google.com/speed/pagespeed/module<br /> | ||
Una volta scaricata l'ultima versione del pacchetto:<ref>[https://www.modpagespeed.com/doc/download]</ref> | Una volta scaricata l'ultima versione del pacchetto:<ref>[https://www.modpagespeed.com/doc/download] Pagina di installazione </ref> | ||
<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 | ||
Riga 54: | Riga 54: | ||
# ModPagespeedRewriteLevel PassThrough | # ModPagespeedRewriteLevel PassThrough | ||
</pre> | </pre> | ||
Lasciamola 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]</ref>.<br />I filtri di default aggiunti da <code>CoreFilters</code> sono: | Lasciamola 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 70: | Riga 69: | ||
* rewrite_javascript | * rewrite_javascript | ||
* rewrite_style_attributes_with_url | * rewrite_style_attributes_with_url | ||
Se vogliamo attivare ulteriori direttive lo possiamo fare dopo la riga | Se vogliamo attivare ulteriori direttive lo possiamo fare dopo la riga | ||
# ModPagespeedEnableFilters collapse_whitespace,elide_attributes | # ModPagespeedEnableFilters collapse_whitespace,elide_attributes | ||
Riga 79: | Riga 77: | ||
ModPagespeedEnableFilters hint_preload_subresources | ModPagespeedEnableFilters hint_preload_subresources | ||
</pre> | </pre> | ||
Sistemiamo i permessi per la directory di cache: | Sistemiamo i permessi per la directory di cache: | ||
<pre> | <pre> | ||
# chmod -R a+w /var/cache/mod_pagespeed | # chmod -R a+w /var/cache/mod_pagespeed |
Versione delle 16:08, 19 mar 2021
Versioni Compatibili Debian 6 "squeeze" Debian 7 "wheezy" Debian 8 "jessie" Debian 9 "stretch" Debian 10 "buster" |
Introduzione
I Google Labs hanno recentemente rilasciato un modulo per il Web server Apache che permette l’ottimizzazione automatica di pagine Web e altre risorse attraverso l’azione di appositi filtri per la riscrittura e fornendo così maggiore velocità di caricamento di tutto il codice HTML, CSS, JavaScript e delle immagini senza rendere necessario alcun intervento manuale sul server. 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.
Il modulo in questione è distribuito sotto licenza Apache 2.0, ma non è incluso nei repository ufficiali Debian a causa dell'utilizzo in bundle di alcune librerie; per una spiegazione delle motivazioni che hanno portato all'esclusione del modulo dai repository Debian si veda ad esempio il seguente bug report.
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:
https://developers.google.com/speed/pagespeed/module
Una volta scaricata l'ultima versione del pacchetto:[1]
# wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
lo possiamo installare tramite gdebi, installandolo se occorre:
# gdebi mod-pagespeed-*.deb
Senza gdebi Al posto di # dpkg -i mod-pagespeed-*.deb # apt-get -f install Gdebi è comunque consigliato perché scarica e prova a installare le dipendenze prima di installare il pacchetto. |
Quindi abilitiamo il modulo e riavviamo Apache.
- Fino a Jessie:
# a2enmod pagespeed # /etc/init.d/apache2 restart
- Da Stretch:
# systemctl reload apache2
L'installazione configura anche un file all'interno della directory /etc/apt/sources.list.d
, abilitando un repository esterno per gli aggiornamenti automatici del modulo.
Configurazione
Dopo l'installazione, può essere utile apportare alcune modifiche alla configurazione del modulo, agendo sul suo file di configurazione principale:
# nano /etc/apache2/mods-available/pagespeed.conf
All'inizio del file dovremmo trovarci le righe:
<IfModule pagespeed_module> # Turn on mod_pagespeed. To completely disable mod_pagespeed, you # can set this to "off". ModPagespeed on
che indicano che il modulo è attivo. Se al contrario ci fosse la direttiva ModPagespeed off, cambiamola a on per attivarlo.
Poco dopo dovremmo trovare la direttiva:
# ModPagespeedRewriteLevel PassThrough
Lasciamola commentata, infatti l'opzione predefinita per ModPagespeedRewriteLevel
è CoreFilters
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 è TestingCoreFilters
, che permette di attivare i filtri sperimentali, ma prima di arrischiarsi è bene testare il sito prima di lasciarli in produzione, mentre PassThrough
disabiliterà ogni filtro di default[2].
I filtri di default aggiunti da CoreFilters
sono:
- add_head
- combine_css
- combine_javascript
- convert_meta_tags
- extend_cache
- fallback_rewrite_css_urls
- flatten_css_imports
- inline_css
- inline_import_to_link
- inline_javascript
- rewrite_css
- rewrite_images: implica recompress_images, recompress_jpeg, recompress_png, recompress_webp, convert_gif_to_png, strip_image_color_profile, strip_image_meta_data, jpeg_sampling
- rewrite_javascript
- rewrite_style_attributes_with_url
Se vogliamo attivare ulteriori direttive lo possiamo fare dopo la riga
# ModPagespeedEnableFilters collapse_whitespace,elide_attributes
Tra le direttive non fornite di default da CoreFilters
è consigliabile aggiungere
ModPagespeedEnableFilters collapse_whitespace,elide_attributes ModPagespeedEnableFilters convert_to_webp_animated ModPagespeedEnableFilters remove_comments ModPagespeedEnableFilters remove_quotes ModPagespeedEnableFilters hint_preload_subresources
Sistemiamo i permessi per la directory di cache:
# chmod -R a+w /var/cache/mod_pagespeed
Quindi riavviamo Apache per fargli digerire le modifiche.
- Fino a Jessie:
# /etc/init.d/apache2 restart
- Da Stretch:
# systemctl reload apache2
Virtual Host
La configurazione precedente applica le stesse impostazioni di mod_pagespeed a tutti i Virtual Host presenti sul nostro server. È però possibile applicare configurazioni personalizzate per ogni Virtual Host, agendo sul file di configurazione del Virtual Host stesso:
<VirtualHost *:80> ServerAdmin webmaster@esempio.com ServerName esempio.com ServerAlias www.esempio.com DocumentRoot /var/www/esempio.com/ <Directory "/var/www/esempio.com"> Options -Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> ModPagespeed on ModPagespeedFileCachePath "/usr/local/apache2/pagespeed/cache/" ModPagespeedGeneratedFilePrefix "/usr/local/apache2/pagespeed/files/" ModPagespeedEnableFilters combine_css ModPagespeedEnableFilters rewrite_css,rewrite_javascript ModPagespeedEnableFilters inline_css,inline_javascript ModPagespeedEnableFilters rewrite_images ModPagespeedEnableFilters insert_img_dimensions ModPagespeedEnableFilters remove_comments ModPagespeedEnableFilters extend_cache ModPagespeedEnableFilters remove_quotes </VirtualHost>
Documentazione
La documentazione ufficiale è reperibile al seguente indirizzo: https://developers.google.com/speed/pagespeed/module
Guida scritta da: Ferdybassi | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |