compactação gzip usando mod_deflate apache com tomcat

1

Estou tentando ativar a compactação gzip no meu servidor Apache, que está à frente de uma instância do Tomcat usando um conector. Eu tentei várias variantes das configurações do módulo no meu httpd.conf. Aqui está minha última tentativa:

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

DeflateCompressionLevel 9
SetEnvIfNoCase Request_URI \.(?:gif|png|jpg|jpeg)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio

LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog "/var/output/logs/deflate_log" deflate
ErrorLog "/var/output/logs/deflate_error_log"
</IfModule>

Estou verificando os cabeçalhos de resposta usando o Firebug e verifiquei se os cabeçalhos de solicitação têm Accept-Encoding: gzip deflate , mas sempre que o cabeçalho Content-Encoding está ausente da resposta.

Eu tentei adicionar a seguinte linha a httpd.conf , mas está dando um erro que mod_deflate é um módulo interno e não pode ser carregado. Eu confirmei isso por apachectl -t e ele mostra mod_deflate.c como módulo compilado.

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

Eu tenho uma instância do Tomcat que está conectada ao Apache via conector AJP. Quando depurei meus servlets, descobri que a resposta Content-Type que estou recebendo para o meu script de teste é application/javascript;charset=UTF-8 . Inicialmente eu estava usando a diretiva AddOutputFilterByType e pensei que a parte charset=UTF-8 adicional poderia estar bagunçando o tipo MIME para o Apache, mas também não está funcionando com SetOutputFilter DEFLATE .

Meus logs personalizados de deflate mostram a seguinte linha repetidamente:

GET /myservlet HTTP/1.1" -/- (-%)

Eu não entendo porque isso não está funcionando. Minha versão do Apache é 2.0.63 . Alguém enfrentou problema semelhante? Existe alguma maneira que eu possa depurar mais e verificar o que está acontecendo dentro do Apache? Talvez habilitando algum log de depuração?

Obrigado Venkat.

    
por Venkat 17.03.2014 / 18:57

1 resposta

0

Você precisa ativar a compactação no Tomcat e não no httpd para conteúdo atendido pelo Tomcat.

    
por 17.03.2014 / 21:50