Ativando Compactação Apache 2 – mod_deflate – CPANEL

Quem conhece o apache das antigas já deve ter se deparado com o mod_gzip, que servia para compactar a saída html do servidor, reduzindo utilização de banda e aumentando velocidade de carga do site.

Tem uma ótima coluna do Fabio Nunes sobre o mod_gzip no vivaolinux.com.br

A partir do Apache 2, foi adicionado um novo módulo no apache, o mod_deflate. Tem o funcionamento bem parecido com o mod_gzip, com algumas pequenas diferenças. Apesar do mod_gzip ter um poder de compressão de 6 a 8% maior do que o mod_deflate, o mod_deflate exige menos processamento e memória do servidor. O que compensa.

Ficou interessado? Confira:

Instalação do mod_deflate no CPANEL com o easyapache

1. Acesse o WHM do servidor

2. Acesse o menu: “Software > EasyApache (Apache Update)”

3. Selecione a opção “Previously Saved Config ” (Para iniciar as opções de compilação do apache utilizando as opções já em uso) e clique em “Start customizing based on profile”

4. Na próxima tela, selecione a versão do apache que deseja compilar, recomendo utilizar a 2.2 ou mais recente. Clique em “Next Step”

5. Agora selecione a maior versão do PHP. Recomendo utilizar o PHP5. Clique em “Next Step”

6. Selecione a versão exata do PHP que deseja instalar. As versões PHP 5.3.x tem um BUG conhecido com o PDO SqLite, portanto se utilizar PDO em suas aplicações, recomendo utilizar a versão mais alta do PHP 5.2.x, no meu caso escolhi o PHP 5.2.14.  Se preferie utilizar versão 5.3.x, lembre-se de desativar o PDO nas próximas telas. Clique em “Next Step”.

7. Nesta tela, você verá uma lista curta de opções de compilação do Apache/PHP, recomendo selecionar as opções:
– Mod suphp, para permitir scripts CGI nos sites
– Zend optimizer for php
Clique em “Exhaustive Options List”

8. Nesta tela, selecione a opção “Deflate”. Cheque a lista de opções e ative também as que achar necessário, como GD, Zlib, Zip, mcrypt, mysql, etc. Marque as opções conforme utilização no seu servidor.

9. Depois de escolher as opções, clique em “Save and build”. O apache será recompilado com o mod_deflate ativado.

Depois de compilado o apache, com a opção ativada ele já estará compactando conteúdo HTML, mas com a web 2.0, vemos sites com muitos javascript e css, html mesmo não costuma a ter muito, então acaba não fazendo muita diferença o mod_deflate. Calma, não fique triste, vamos configurar agora para compactar também .js e .css.

Ativando compactação Apache 2 – mod_deflate

Ativando compactação Apache 2 – mod_deflate

Ainda no WHM, depois de terminada a compilação do apache:

1 – Vá em “Service configuration > Apache configuration”

2 – Vá em “Include editor”

3 – Na opção “Post virtualhost include”, selecione “all versions” e adicione o seguinte texto na caixa que aparecerá:

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE

<IfModule mod_setenvif.c>
# Netscape 4.x has some problems…
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won’t work. You can use the following
# workaround to get the desired effect:
#BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Don’t compress already-compressed files
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:avi|mov|mp3|mp4|rm|flv|swf|mp?g)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .pdf$ no-gzip dont-vary
</IfModule>

<IfModule mod_headers.c>
# Make sure proxies don’t deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>

4. Clique em “Update”

5. Agora basta reiniciar o apache e verificar. Você conseguirá reduzir o tamanho do site em até 60% com essas configurações.