Come configuro Apache2 per supportare la compressione HTTP ?
Come configuro Apache2 per supportare la compressione HTTP ?
Risposte:
Ciò richiede il deflate
modulo, quindi abilitalo. Sotto Ubuntu (che è quello che sto usando), il comando è quello a2enmod deflate
.
Quindi, utilizzare SetOutputFilter
su Proxy
o Directory
direttiva:
<ProxyMatch "^http://localhost:8080/($|app/)">
Order allow,deny
Allow from all
SetOutputFilter Deflate
</ProxyMatch>
O:
<Directory /var/www>
Order allow,deny
Allow from all
SetOutputFilter Deflate
</Directory>
Come voce di Wikipedia che colleghi alle note, puoi usare mod_deflate o mod_gzip . Vedi qui un esempio con mod_gzip , che è quello che uso.
<VirtualHost *:80>
...
DeflateBufferSize 16384
DeflateCompressionLevel 5
DeflateMemLevel 9
DeflateWindowSize 15
<Location / >
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
</Location>
...
</VirtualHost>
A seconda della tua distribuzione, inseriscilo nella cartella conf.d o extras come mod_deflate.conf:
# Enable mod_deflate (gzip)
SetOutputFilter DEFLATE
# Do not attempt to compress the following extensions
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|swf|flv|zip|gz|tar|mp3|mp4|m4v)$ no-gzip dont-vary
Riavvia apache e mod_deflate si verificherà su tutte le estensioni che non corrispondono al regex sopra, questo riduce il sovraccarico generale della CPU poiché impedisce a mod_deflate di tentare di comprimere un formato per cui vedrai una compressione scarsa o nulla (perché è già compressa).
Per vedere esattamente cosa viene compresso e il rapporto di compressione, posizionalo nel tuo
# Deflate accurate logging
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/yourdomain_deflate.log