Habilitar compressão GZIP no tomcat

Postado em por Wolmir Cezer Garbin em Java | 1049 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.

Todo mundo tem algo para vender, AnuncieOn.com o melhor site de anúncios grátis de todo o Brasil. ABRIR

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.


Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


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

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores


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