Como saber se o mod_deflate está realmente funcionando?

Como saber se o mod_deflate está realmente funcionando?

Coloquei o seguinte no meu arquivo http.conf:

# mod_deflate configuration
<IfModule mod_deflate.c>

# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css

# Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9

# Netscape 4.x has some problems.
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

</IfModule>

Meu conteúdo não retorna com uma codificação de conteúdo do tipo gzip, mas recebo muito mais 304s e o Etag é anexado com um sufixo +gzip. O mod_deflate está realmente fazendo seu trabalho? (Desculpe pelo n00b)

Responder1

O que os cabeçalhos dizem, se não estiver retornando "codificação de conteúdo: gzip", provavelmente não está funcionando. Você pode testar da seguinte maneira:

curl -I -H 'Accept-Encoding: gzip,deflate' http://yoursite.com/somefile

Responder2

Os documentos do Apache paraAdicionarOutputFilterByTypeindica que esta diretiva está obsoleta no Apache httpd 2.1 e posterior e nem sempre funciona bem se o Apache não puder determinar o tipo MIME.

Eu sugeriria ativar a compactação usando algo como o seguinte como ponto de partida e, em seguida, adicionar todos os ajustes do navegador e níveis de compactação novamente. Obviamente, você pode querer verificar httpd.conf para ter certeza de que está realmente carregando mod_deflate.so também :

<Location />
    SetOutputFilter DEFLATE
    # Don't compress images
    SetEnvIfNoCase Request_URI \.(?:gif|png|jpg|jpeg)$ no-gzip dont-vary
    Header append Vary User-Agent env=!dont-vary
</Location>

Use cURL conforme mencionado por Michael Steinfeld para verificar.

Responder3

Não consigo adicionar um comentário porque não tenho reputação suficiente, portanto estou escrevendo isso como uma resposta.

A resposta original de Michael Steinfeld estava gerando o seguinte erro (no prompt de comando do Windows)

curl: (6) Could not resolve host: gzip,deflate'

Eu resolvi isso removendo o espaço após os dois pontos:

curl -I -H 'Accept-Encoding:gzip,deflate' http://yoursite.com/somefile

Responder4

ComLogLeveldefinido como debug, mod_deflate registrará suas mensagens de depuração emErrorLog. Cada recurso que está sendo compactado é desconectado. Você pode ver se mod_deflate está funcionando em tempo real com

tail -f /path/to/error-log | grep deflate

por exemplo

[Quarta, 22 de abril 05:37:49.742615 2015] [deflate:debug] [pid 22627] mod_deflate.c(849): [cliente 127.0.0.1:55667] AH01384: Zlib: compactado 10700 a 2637: URL /web/js/ common.js, referenciador:http://localhost/index.php

informação relacionada