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: 56.601 ]

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

Configurando o Fluxbox como WM padrão no Slackware 9.0

Instalando Apache2, PHP4 e MySQL

Balanceamento e alta disponibilidade com Bonding

Xen - XL.cfg - Sintaxe da Configuração de Domínios - Parte I

Debian: Como criar um repositório local, offline

  
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 <[email protected]>
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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts