di: Andrea Cristaudo 12 Dicembre 2006
Per configurare finemente il nostro mod_deflate (dopo aver deciso i file su cui applicare la compressione) possiamo intervenire su quattro parametri diversi:
Come abbiamo già visto talvolta la compressione di contenuti non testuali genera problemi ad alcuni client causando nella migliore delle ipotesi una errata visualizzazione del contenuto e nella peggiore delle ipotesi un crash. Se consideriamo poi come questa compressione non porti alcun vantaggio dal punto di vista del risparmio di banda e come possa occupare molte risorse di sistema per via della dimensione dei file non testuali possiamo ben capire come non convengo attivare il mod_deflate per questi file. Per fortuna abbiamo la possibilità di specificare i mime/type dei file su cui applicare la compressione per evitare di agire inutilmente: a questo proposito faremo in modo da far comprimere unicamente i file di tipo testuale.
Problema diverso è invece quello riscontrato con i file PDF compressi inviati ad Internet Explorer 5.5 e 6.0 con plugin Adobe per la lettura. In questo caso infatti è possibile che il sistema vada in crash. A questo proposito faremo in modo da non permettere ai file PDF di essere compressi da Apache.
È necessario inoltre tener presente che alcuni browser potrebbero dichiararsi capaci di gestire questi contenuti non essendolo realmente. Anche in questo caso possiamo avvalerci di altri moduli di Apache per modulare il file di configurazione in modo che li riconosca. Per ultimo bisogna far attenzione ad eventuali proxy attraverso cui possono transitare i dati e che potrebbero alterare gli header rendendo la fruizione reale dei contenuti diversa da quella attesa.
In definitiva un file di configurazione di questo tipo è perfetto per l'uso generico e permette di non avere problemi con la quasi totalità degli utenti.
<IfModule mod_deflate.c> # Specifico i file su cui applicare la compressione AddOutputFilterByType DEFLATE text/html text/plain text/xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE text/css # Elimino eventuali problemi derivanti dai browser # con problemi di gestione BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Specifico espressamente i vari livelli di compressione DeflateCompressionLevel 9 DeflateMemLevel 9 DeflateWindowSize 15 DeflateBufferSize 8096 # Mi assicuro che i proxy non creino problemi Header append Vary User-Agent env=!dont-vary # Creo il file di log contenente il tasso di compressione DeflateFilterNote ratio LogFormat "%v %h %l %u %t \"%r\" %>s %b mod_deflate: %{deflate_ratio}n pct." deflate_vhost CustomLog logs/deflate.log deflate_vhost </IfModule>
Installate questo modulo sul vostro server di produzione e vedrete veramente crollare l'impiego di banda. Considerando il caching delle immagini attuato dai browser moderni infatti il traffico dovuto ai file testuali (prevalentemente HTML) acquista un peso relativo decisamente rilevante nel complesso dei file trasferiti.
Guida risparmio energetico per serverDalla determinazione dei consumi al risparmio, dalla... |
Guida SubversionSVN è uno dei sistemi per il versioning più utilizzati al mondo.... |
Guida Application serverCosa sono, quali sono e come possono essere utilizzati nella... |
Ogni settimana, in due distinte newsletter: notizie a approfondimenti su Apache e IIS.
Iscriviti alla newsletter
|
|
Corso Windows server 200829 Marzo 2010 a Milano |
|
|
Corso Amministratore Linux15 Febbraio 2010 a Roma |