Habilitar compressão GZIP no tomcat

Postado em por Wolmir Cezer Garbin em Java | 218 Visualizações
Última atualização em:

Habilitar o GZIP no Tomcat pode deixar seu web site ou aplicação muito mais performática, neste post vou mostrar como fazer isso.

Habilitar compressão GZIP no tomcat

Dentre as principais dicas para otimização de servidores, habilitar a compressão GZIP é a primeira que deve ser feita.

O que é o GZIP?

É um formato de compressão criado por Jean-Loup Gailly e Mark Adler. A versão 0.1 foi lançada pela primeira vez em 31 de outubro de 1992. GZIP é baseado no algoritmo DEFLATE, que é uma combinação de codificação LZ77 e Huffman.

Pode ser considerado GZIP tanto um software para compactação de arquivos que serve de implementação de referência quanto o formato do arquivo compactado que este gera.

Habilitando o GZIP ajuda no desempenho do meu site?

A resposta não pode ser outra. Muito!

Os navegadores modernos suportam conteúdo comprimido pelo gzip e são capazes de descompactar dados gzip em texto simples. Servidores como Apache Tomcat, Glassfish e Wildfly também suportam a compressão gzip. Dessa forma, ativando a compressão gzip, todos os arquivos ficam com um tamanho muito menor, aumentando consideravelmente a performance do seu site ou portal web.

Então, recomendamos fortemente que verifique isso em seu servidor!

Como ativar o GZIP no meu servidor Tomcat?

Ativar a compactação GZIP no tomcat é relativamente simples. O procedimento se baseia na inclusão de algumas linhas adicionais no server.xml, vou mostrar passo a passo e depois explicar como funciona.

Qual versão do Tomcat podemos utilizar GZIP?

Acredito que todas as versões do tomcat suportam a compactação GZIP, mas como trabalho com o Tomcat a algum tempo e inicie trabalhando com o Tomcat 6, desde esta versão tenho absoluta certeza que vai poder ativar a compressão GZIP sem problema algum. Caso utilize uma versão muito inferior ao tomcat 6, seria interessante atualizar para uma versão mais recente.

Primeiro - Edite o arquivo server.xml

Procure pela sua instalação do Tomcat em sua maquina ou no servidor, acesse a pasta, localize o diretório conf e dentro desta pasta localize o arquivo server.xml.

Arquivo: /conf/server.xml

Abra o arquivo em seu editor preferido.

Segundo - Adicione as regras de compressão

Dentro do arquivo server.xml localize a linha: <Connector port[...]. Após localizar o connector adicione a tag a seguinte instrução:

compression="on"
compressionMinSize="10"
noCompressionUserAgents="gozilla, traviata" 
compressableMimeType="text/html,text/xml,text/css,text/javascript, application/x-javascript,application/javascript"

No final o código completo fica similar ao seguinte:

<Connector port="8080" maxHttpHeaderSize="8192"
	maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
	enableLookups="false" redirectPort="8443" acceptCount="100"
	connectionTimeout="20000" disableUploadTimeout="true" 
	compression="on"
	compressionMinSize="10"
	noCompressionUserAgents="gozilla, traviata" 
	compressableMimeType="text/html,text/xml,text/css,text/javascript, application/x-javascript,application/javascript"/>

Note que algumas informações podem mudar de acordo com a sua configuração de servidor, preste atenção para não alterar.

Terceiro, reinicie seu servidor

Agora reinicie o serviço do tomcat, se estiver no linux pode utilizar o seginte comando dentro do diretório principal do tomcat:

./bin/catalina.sh restart

Caso reinicie seu servidor de outra forma utilize o seu padrão

Por último, verificando se funcionou

Para verificar as requisições foi analizado o cabeçalho de requisição de uma página no Firefox.

Requisição sem compressão GZIP no tomcat:

Requisição http tomcat sem GZIP ativo

Requisição com compressão GZIP no tomcat:

Requisição http tomcat com GZIP ativo

Note que na primeira imagem o tamanho da requisição é 344B enquanto na segunda é 234B, também o tempo de requisição na primeira é 3.8s enquanto na segunda é 2.2s. Para finalizar na segunda temos o Content-Enconding do tipo gzip e primeira não tinhamos compressão nenhuma.

Ficou com dúvidas deixe nos comentários.

Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

Posts relacionados


Code Conference

Esta é uma conferência de código realizada na cidade de Pato Branco para dissiminar tendências e informações sobre programação e novas tecnológias

Veja mais sobre o Code Conference

Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar