Configurando mod_gzip no Apache

O mod_gzip é um módulo que, aplicado ao Apache, pode trazer uma economia de banda enorme dependendo do site que você hospeda. Seu funcionamento é simples, quando o cliente faz uma requisição, o Apache compacta o conteúdo e envia para o browser do cliente, que faz a descompactação economizando assim recursos de banda.

[ Hits: 59.270 ]

Por: Fabio Nunes em 15/07/2004


Configurando



Se tudo deu OK na instalação, edite o httpd.conf e descomente a linha:

LoadModule gzip_module        libexec/mod_gzip.so

E adicione estas linhas:

<IfModule mod_gzip.c>

   mod_gzip_on Yes
   mod_gzip_item_exclude         reqheader  "User-agent: Mozilla/4.0[678]"
   mod_gzip_item_include         file       \.html$
   mod_gzip_item_exclude         file       \.js$
   mod_gzip_item_exclude         file       \.css$
   mod_gzip_item_include         file       \.pl$
   mod_gzip_item_include         handler    ^cgi-script$
   mod_gzip_item_include         mime       ^text/html$
   mod_gzip_item_include         mime       ^text/plain$
   mod_gzip_item_include         mime       ^httpd/unix-directory$
   mod_gzip_item_exclude         mime       ^image/
   mod_gzip_item_include  mime ^text/.*
   mod_gzip_item_include  mime ^application/postscript$
   mod_gzip_item_exclude  mime ^application/x-javascript$
   mod_gzip_item_exclude  mime ^image/.*$
   mod_gzip_item_exclude  file \.exe$
   mod_gzip_item_exclude  file \.tgz$
   mod_gzip_item_exclude  file \.zip$
   mod_gzip_item_exclude  file \.bz2$
   mod_gzip_item_exclude  mime ^application/pdf$
   mod_gzip_dechunk              Yes
   mod_gzip_static_suffix .gz
   mod_gzip_update_static No
   mod_gzip_keep_workfiles       No
   mod_gzip_minimum_file_size    500
   mod_gzip_maximum_file_size    500000
   mod_gzip_maximum_inmem_size   60000
   mod_gzip_min_http             1000
   mod_gzip_handle_methods GET POST
   AddEncoding gzip .gz
  
   # LOG É ESSENCIAL
   LogFormat                     "%h %l %u %t \"%V %r\" %<s %b mod_gzip: %{mod_gzip_result}n In:%{mod_gzip_input_size}n -< Out:%{mod_gzip_output_size}n = %{mod_gzip_compression_ratio}n pct." common_with_mod_gzip_info2
   CustomLog                     logs/mod_gzip.log common_with_mod_gzip_info2
   mod_gzip_add_header_count     Yes
</IfModule>

Salve o arquivo e reinicie o Apache.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando
   3. Configurando
   4. Explicando o que foi feito
   5. Ajuste fino
   6. Conclusão
   7. Agradecimentos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

ZRAM (Compressed RAM) no Debian

Instalação automatizada de servidores com kickstart

Balanceamento de 3 links com redundância no Linux

Configuração de Servidor BIND 9

Instalando Wireless USB Adapter D-Link DWL-G122 no Debian

  
Comentários
[1] Comentário enviado por fabio em 15/07/2004 - 03:37h

Maneiríssimo o artigo, meus parabéns!!!

Agora, auto-respondendo a primeira dúvida que me surgiu ao ler esse artigo: como o browser descompacta o conteúdo recebido pelo Apache? E se o browser não tiver suporte a compressão?

Resposta: o que acontece é o seguinte, o primeiro contato sempre vem na direção cliente->servidor, pois é o cliente que faz a requisição da página que deseja acessar. Quando essa requisição é feita, alguns cabeçalhos são enviados ao servidor web (qual site, qual página, etc) e de acordo com tais cabeçalhos, o Apache vai decidir se o cliente aceita compressão ou não.

O cabeçalho que o browser envia ao Apache referente a compressão é o seguinte:

Accept-encoding: gzip
ou
Accept-encoding: gzip, deflate

O gzip é o padrão de compressão do módulo mod_gzip, que funciona no Apache 1.3 e 2.0, já o deflate é o padrão sucessor do gzip, mas que só funciona no módulo deflate do Apache 2.0.

Bom, isso tudo é novidade pra mim, espero não ter falado besteira. Vou fazer os testes por aqui, curti muito esse negócio. :P

[]'s

[2] Comentário enviado por jeffestanislau em 15/07/2004 - 10:08h

F. Nunes
Muito bala o artigo... o lance agora é testar mesmo pra ver suas vantagens na real!!!

Parabéns!!!

[]´s

[3] Comentário enviado por alphainfo em 15/07/2004 - 11:18h

Artigo muito bem documentado, legal. Mais legal ainda foi a iniciativa do Fábio, de explicar uma dúvida que acredito eu, ser a dúvido de todos ao lerem este artigo:
"E se o navegador não suportar essa compressão, a página não será exibida?"

Essa é a dúvida, caríssimos, existe a possibilidade de algum browser não suportar essa compressão? Se não suportar, como ocorre?

[]'s à todos!

Daniel Freire

[4] Comentário enviado por nunix79 em 15/07/2004 - 12:16h

Todos os Browsers modernos suportam essa compressao, a menos que o cliente use opera 3 e 4, netscape 3, netscape 4, o netscape 4x tem alguns bugs. Agora o que ocorre boa pergunta na documentaçao diz que pode aparecer uma tela branca ou os codigos da pagina.

Fabio Nunes



[5] Comentário enviado por alvares em 15/07/2004 - 12:24h

Eu já usei este recurso e o site fica bala, para ter uma idéia uma página que demorava 40 segundos para carregar carrega em 0(quase 1) segundo, é demais !!!!

[6] Comentário enviado por fabio em 15/07/2004 - 12:52h

Então, mas pelo que li, o Apache só envia o conteúdo comprimido se o browser informar o header: Accept-encoding: gzip. Caso contrário, a página vai normal.

[]'s

[7] Comentário enviado por nunix79 em 15/07/2004 - 13:29h

Certissimo, lista de browsers que aceitam internet explore 4.0, 5.0, 5.5, 6.0, Netscape 6 e 7, Mozzila 0.9.x e 1.x, Opera 5 e 6, e Lynx 2.6. No internet explore 6.0 já vem setado HTTP 1.1 nao sei as versoes anteriores ja o Netscape 6 e 7 e Moziila 0.9.x e seus sabores ja usam HTTP 1.1 que enviam Accept-encoding: gzip.

Correçao as mensagen que podem aparecer se refere a uns bugs no Netscape 4.x

Existe um parametro que voce configura um requerimento de browser minimo para executar a compressao. Evita problemas com os bugs do Netscape 4.x

mod_gzip_min_http 1001

Neste casoo so se o browser tiver suporte a versao HTTP 1.1 ira ocorrer a compressao, o valor 1000 aceita ambas versoes HTTP 1.0 e HTTP 1.1.

Agora uma duvida o internet explore versoes anteriores a 6.0 o padrão é HTTP 1.0 ?
Se for, so ira desfrutar deste recurso se setar para 1.1.

Fabio Nunes

[8] Comentário enviado por mayconsan em 20/07/2004 - 12:00h

Tentei compilar o modulo mas me retorna o seguinte erro:

mod_gzip.c:8080: warning: return makes pointer from integer without a cast
mod_gzip.c: In function `mod_gzip_compress_file':
mod_gzip.c:8110: warning: passing arg 4 of `ap_log_error' makes integer from pointer without a cast
mod_gzip.c:8110: warning: passing arg 5 of `ap_log_error' from incompatible pointer type
apxs:Error: Command failed with rc=65536
.
make: *** [build] Error 1

O que pode ser?

[9] Comentário enviado por nunix79 em 20/07/2004 - 12:05h

Passa a versao do seu Apache

grato
Fabio Nunes

[10] Comentário enviado por mayconsan em 20/07/2004 - 16:47h

2.0.50

[11] Comentário enviado por nunix79 em 20/07/2004 - 23:52h

Então o mod_gzip é para o Apache versoes 1.3.x para versoes 2.0.x você devera usar o deflate, na conclusao tem um link para um tutorial publicado no linuxjournal lá tambem explica como configurar o daflate.

Espero ter ajudado
Fabio Nunes

[12] Comentário enviado por ace rush em 24/11/2004 - 00:18h

Muito maneiro esse mod!!!

Muito bom nunix! Valeu o artigo pela facil explicacao e tambem por apresentar esse mod tao maneiro. : roll :

[13] Comentário enviado por fernandoamador em 23/12/2004 - 14:31h

Ótima.

[14] Comentário enviado por allangood em 03/02/2005 - 15:44h

Um problema que eu já tive com o mod_gzip:
Quando um cliente usa o IE, por padrão ele vem configurado para NÃO USAR HTTP 1.1 através de um proxy. O curioso é que ele envia o header "Accept-encoding: gzip", mas não descompacta o conteúdo. Ocorrendo o problema citado pelo Fábio Nunes em 15/07/2004.

Até mais.

[15] Comentário enviado por brunozampaglione em 14/04/2005 - 18:40h

Fui até o site do linux jornal para poder baixar e configurar o modulo deflate para apache 2.0, mas o link do download esta quebrado, algue sabe onde eu posso baixar?
Se isso funcionar vai otimizar meu server em 45%.
To muito bolado com esse artigo.

Abçs,

[16] Comentário enviado por itagildo em 06/01/2006 - 09:16h

a instalacao aparentemente funcionou blz, mas na hora de reiniciar o server apareceu a seguinte mensagem:
Cannot load /usr/lib/apache/1.3/mod_gzip.so into server: /usr/lib/apache/1.3/mod_gzip.so: undefined symbol: top_module

Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
Architecture: i386
Version: 1.3.33-6sarge1
Replaces: apache-modules

Obrigado,

Itagildo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts