¿Cómo saber si mod_deflate realmente funciona?

¿Cómo saber si mod_deflate realmente funciona?

He puesto lo siguiente en mi archivo 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>

Mi contenido no regresa con una codificación de contenido de tipo gzip, pero obtengo muchos más 304 y la etiqueta Etag se agrega con un sufijo +gzip. ¿Mod_deflate realmente está haciendo su trabajo? (Perdón por la n00b-ishness)

Respuesta1

¿Qué le dicen los encabezados? Si no devuelve "codificación de contenido: gzip", probablemente no esté funcionando. Puede probar de la siguiente manera:

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

Respuesta2

Los documentos de Apache paraAgregar filtro de salida por tipoindique que esta directiva está obsoleta en Apache httpd 2.1 y posteriores y que no siempre funciona bien si Apache no puede determinar el tipo mime.

Sugeriría habilitar la compresión usando algo como lo siguiente como punto de partida y luego agregar todos los ajustes del navegador y los niveles de compresión nuevamente. Obviamente, es posible que desees volver a verificar httpd.conf para asegurarte de que realmente también esté cargando mod_deflate.so. :

<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>

Utilice cURL como lo menciona Michael Steinfeld para verificar.

Respuesta3

No puedo agregar un comentario porque no tengo suficiente reputación, por lo que escribo esto como respuesta.

La respuesta original de Michael Steinfeld generaba el siguiente error (en el símbolo del sistema de Windows)

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

Lo resolví eliminando el espacio después de los dos puntos:

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

Respuesta4

ConLogLevelconfigurado en debug, mod_deflate registrará sus mensajes de depuración enErrorLog. Cada recurso que se comprime se registra allí. Puedes ver si mod_deflate está funcionando en tiempo real con

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

p.ej

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

información relacionada