Como faço para configurar o Apache2 para suportar a compactação HTTP ?
Como faço para configurar o Apache2 para suportar a compactação HTTP ?
Respostas:
Isso requer o deflate
módulo, então habilite isso. No Ubuntu (que é o que eu estou usando), o comando para isso é a2enmod deflate
.
Em seguida, use SetOutputFilter
na sua diretiva Proxy
ou Directory
:
<ProxyMatch "^http://localhost:8080/($|app/)">
Order allow,deny
Allow from all
SetOutputFilter Deflate
</ProxyMatch>
Ou:
<Directory /var/www>
Order allow,deny
Allow from all
SetOutputFilter Deflate
</Directory>
Como entrada da Wikipedia que você vincula às notas, você pode usar mod_deflate ou mod_gzip . Veja aqui um exemplo com mod_gzip , que é o que eu 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>
Dependendo da sua implantação, coloque-o na pasta conf.d ou extras como 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
Reinicie o apache e mod_deflate ocorrerá em todas as extensões que não correspondem ao regex acima, isso reduz a sobrecarga geral da CPU, pois evita que o mod_deflate tente compactar um formato pelo qual você verá pouca ou nenhuma compactação (porque já está compactado).
Para ver exatamente o que está sendo compactado e a taxa de compactação, coloque-o no seu
# 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