Aggiornare l’anno nel footer in maniera automatica
1 Novembre 2013Perchè sei così lento?
28 Novembre 2013Ho dedicato la mattina ad ottimizzare la velocità di alcuni siti lavorando sui parametri del server Apache.
Per partire da qualche parte, ho utilizzato un servizio on-line di analisi delle prestazioni del server, il servizio http://gtmetrix.com.
La prima segnalazione riguarda l’uso della compressione gzip a livello server, ovvero il fatto che il server Apache comprima i file di testo (HTML, CSS, TXT ecc) prima di spedirli al client: questo riduce molto il traffico tra server e client e quindi i tempi di attesa.
Da una rapida ricerca ho visto che esistono essenzialmente due moduli di compressione associati ad Apache: il modulo DEFLATE ed il modulo GZIP. Quest’ultimo è meno usato nelle versioni più recenti di APACHE, mentre il primo avrebbe prestazioni migliori.
Ad una prima analisi, il sito in esame basato su PrestaShop conteneva già nel file .htaccess tutti i comandi necessari per attivare la compressione…
[sourcecode]
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/x-javascript
</IfModule>
</IfModule>
[/sourcecode]
… ma la compressione non avviene.
Il problema è dato dal fatto che il modulo filter_module (indicato nel codice mod_filter) non viene caricato da Apache, come ho potuto verificare con il comando
apachectl -t -D DUMP_MODULES
che elenca tutti i moduli attualmente caricati nel server Apache (per approfondimenti >>> )
Ho risolto il problema caricando il relativo modulo aggiungendo la riga
LoadModule filter_module modules/mod_filter.so
nel file di configurazione di Apache (nel mio caso /etc/httpd/conf/httpd.conf) e riavviando il server Apache con il comando
/etc/init.d/httpd graceful
A questo punto il sito incriminato risulta “compresso”, inoltre posso comprimere agevolmente altri siti aggiungendo le righe indicate all’inizio in tutti i file .htaccess che necessitano.