Como saber se mod_deflate está realmente funcionando?

6

Eu 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 um Content-Encoding do tipo gzip, mas me vejo recebendo muito mais 304s e o Etag é anexado com um sufixo + gzip. O mod_deflate está realmente fazendo o seu trabalho? (Desculpe pelo n00b-ishness)

    
por Jay 26.11.2011 / 02:00

4 respostas

9

O que os cabeçalhos informam, se ele 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
    
por 26.11.2011 / 02:40
1

Os documentos do apache para AddOutputFilterByType indicam que esta diretiva está obsoleta no Apache httpd 2.1 e mais tarde e nem sempre funciona bem se o Apache não puder determinar o tipo MIME.

Sugiro 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. Obviamente, você pode querer verificar novamente o httpd.conf para certificar-se de que está realmente carregando mod_deflate. assim 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 como mencionado por Michael Steinfeld para verificar.

    
por 27.11.2011 / 15:49
1

Com LogLevel definido como debug , mod_deflate registrará seu debug mensagens para ErrorLog . Todo recurso que está sendo compactado é desconectado. Você pode ver se mod_deflate está trabalhando em tempo real com

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

por exemplo,

[Wed Apr 22 05:37:49.742615 2015] [deflate:debug] [pid 22627] mod_deflate.c(849): [client 127.0.0.1:55667] AH01384: Zlib: Compressed 10700 to 2637 : URL /web/js/common.js, referer: http://localhost/index.php

    
por 22.04.2015 / 12:11
0

Não é possível adicionar um comentário, pois não tenho reputação suficiente, portanto, estou escrevendo isso como uma resposta.

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

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

Eu resolvi isso removendo o espaço depois dos dois pontos:

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

    
por 16.08.2018 / 18:55