Apache mod_deflate · 4 min read · Sep 25, 2025

Como Economizar Tráfego Com o mod_deflate do Apache2

Neste tutorial, descreverei como instalar e configurar o mod_deflate em um servidor web Apache2. O mod_deflate permite que o Apache2 comprima arquivos e os entregue a clientes (por exemplo, navegadores) que podem lidar com conteúdo comprimido, o que a maioria dos navegadores modernos faz. Com o mod_deflate, você pode comprimir arquivos HTML, texto ou XML para aproximadamente 20 - 30% de seus tamanhos originais, economizando assim tráfego do servidor e deixando seus usuários de modem mais felizes.

Comprimir arquivos causa uma carga ligeiramente maior no servidor, mas, na minha experiência, isso é compensado pelo fato de que os tempos de conexão dos clientes ao seu servidor diminuem bastante. Por exemplo, um usuário de modem que precisava de sete segundos para baixar um arquivo HTML não comprimido pode agora precisar de apenas dois segundos para o mesmo arquivo, mas comprimido.

Ao usar o mod_deflate, você não precisa ter medo de excluir usuários com navegadores mais antigos que não podem lidar com conteúdo comprimido. O navegador negocia com o servidor antes que qualquer arquivo seja transferido, e se o navegador não puder lidar com conteúdo comprimido, o servidor entrega os arquivos não comprimidos.

O mod_deflate substituiu o mod_gzip do Apache 1.3 no Apache2. Se você quiser servir arquivos comprimidos com o Apache 1.3, dê uma olhada neste tutorial: mod_gzip - servindo conteúdo comprimido pelo servidor web Apache.

Quero dizer primeiro que esta não é a única maneira de configurar tal sistema. Existem muitas maneiras de alcançar esse objetivo, mas este é o caminho que eu sigo. Não dou nenhuma garantia de que isso funcionará para você!

1 Habilitar o mod_deflate

Se você tem o Apache2 instalado, o mod_deflate também deve já estar instalado em seu sistema. Agora precisamos habilitá-lo. No Debian, podemos fazer isso assim:

a2enmod deflate

Em seguida, reinicie o Apache2:

service apache2 restart

Em outras distribuições, você pode ter que editar a configuração do Apache2 manualmente para habilitar o mod_deflate. Você pode ter que adicionar uma linha como esta à seção LoadModule:

LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so

Certifique-se de ajustar o caminho para mod_deflate.so e reinicie o Apache2 depois.

2 Configurar o mod_deflate

A compressão de arquivos pode ser configurada de uma das duas maneiras: ou exclusão explícita de arquivos por extensão ou inclusão explícita de arquivos por tipo MIME. Você pode habilitar o mod_deflate para todo o seu servidor Apache2 ou apenas para sites virtuais específicos. Dependendo disso, abra agora a seção de configuração global do servidor Apache2 ou apenas a seção de configuração do vhost onde você deseja habilitar o mod_deflate.

2.1 Inclusão Explícita De Arquivos Por Tipo MIME

Se você deseja comprimir apenas arquivos HTML, texto e XML, adicione esta linha à sua configuração:

AddOutputFilterByType DEFLATE text/html text/plain text/xml

Esta é a configuração que estou usando porque não quero comprimir imagens ou arquivos PDF ou arquivos já comprimidos, como arquivos zip.

2.2 Exclusão Explícita De Arquivos Por Extensão

Se você deseja comprimir todos os tipos de arquivos e excluir apenas alguns, você adicionaria algo como isto à sua configuração (em vez da linha da seção 2.1):

SetOutputFilter DEFLATE  
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 \.pdf$ no-gzip dont-vary

Isso comprimiria todos os arquivos, exceto imagens (gif, jpg e png), arquivos já comprimidos (como zip e tar.gz) e arquivos PDF, o que faz sentido porque você não ganha muito comprimindo esses tipos de arquivos.

2.3 Diretrizes de Configuração Adicionais

Independentemente de você usar a configuração da seção 2.1 ou 2.2, você deve adicionar estas linhas à sua configuração:

BrowserMatch ^Mozilla/4 gzip-only-text/html  
BrowserMatch ^Mozilla/4\.0[678] no-gzip  
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Essas linhas são para alguns navegadores mais antigos que não suportam a compressão de arquivos além de documentos HTML.

A configuração agora está concluída, e você deve reiniciar o Apache2. No Debian, você faz isso assim:

service apache2 restart

Para aprender sobre diretrizes de configuração adicionais, dê uma olhada no Módulo Apache mod_deflate.

3 Testando

Para testar nossa compressão, adicionamos algumas diretrizes à nossa configuração do mod_deflate que registram a taxa de compressão dos arquivos entregues. Abra sua configuração do mod_deflate e adicione as seguintes linhas:

DeflateFilterNote Input input_info  
DeflateFilterNote Output output_info  
DeflateFilterNote Ratio ratio_info  
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate  
CustomLog /var/log/apache2/deflate_log deflate

Certifique-se de substituir /var/log/apache2 pelo diretório de log do seu Apache2. Isso pode ser /var/log/httpd, /var/log/httpd2, etc.

Em seguida, reinicie o Apache2. No Debian, faça isso assim:

service apache2 restart

Agora, sempre que um arquivo for solicitado, isso será registrado em /var/log/apache2/deflate_log (ou no arquivo que você alterou). Uma linha de log típica se parece com isto:

"GET /info.php HTTP/1.1" 7621/45430 (16%)

Você vê que o arquivo info.php foi solicitado e entregue. Seu tamanho original era 45430 bytes, e foi comprimido para 7621 bytes ou 16% de seu tamanho original! Este é um ótimo resultado, e se o seu site consiste principalmente de arquivos HTML, texto e XML, o mod_deflate economizará muito tráfego, e para usuários com uma conexão de baixa largura de banda, seu site carregará muito mais rápido.

Se você não precisar mais do registro após seus testes, pode desfazer as alterações da seção 3 e reiniciar o Apache2.

4 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.