images - ¿Cómo puedo verificar que el módulo nginx gzip_static esté funcionando?
nginx gzip compression images (6)
¿Cómo puedo verificar que nginx esté sirviendo la versión .gz de los archivos estáticos, si existen?
Recopilé nginx con el módulo estático gzip, pero no veo ninguna mención de la versión .gz que se sirve en mis registros. (He minimizado los archivos global.js y global.css con versiones .gz de ellos en el mismo directorio).
La parte relevante de nginx.conf se ve así:
gzip on;
gzip_static on;
gzip_http_version 1.0;
gzip_disable "MSIE [1-6]/.";
gzip_vary on;
gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
Cualquier indicador sería apreciada.
Cambie el contenido del archivo no comprimido. Y luego touch
ambos archivos (a la vez, es decir: en la misma instancia de touch
). Si al cargar el archivo en un navegador (caché borrado) obtiene el archivo no modificado, entonces nginx sirve el archivo static-cached-gzipped.
Una forma fácil de evitar las preocupaciones de "¿acabo de recuperar el caché?" Es extraer de la línea de comandos con curl
ya que curl no guarda en caché.
Desactivaría la compresión automática y registraría gzip_ratio
:
http {
gzip off;
gzip_static on;
log_format log_with_ratio "... $gzip_ratio ...";
server {
access_log /var/log/nginx/file.log log_with_ratio;
}
}
Tenga en cuenta que puede anular gzip
, gzip_static
y access_log
por nivel de servidor y ubicación.
Hay alguna pista que he notado con respecto al ETag
respuesta ETag
.
Si el archivo estático es servido por nginx, entonces el encabezado se ve así: ETag: "135a-BQhu6KL71dyeCXcVZme6ug"
, sin embargo, cuando nginx está comprimiendo la respuesta (a través del módulo gzip) se ve así: ETag: W/"135a-BQhu6KL71dyeCXcVZme6ug"
( aviso W/
).
Puede usar esto así como Content-Encoding: gzip
para distinguir archivos estáticos, preestablecidos y estáticos comprimidos sobre la marcha.
Puede usar las Herramientas de desarrollo de Chrome a través de la pestaña Red si habilita la columna Codificación de contenido (haga clic con el botón derecho en las columnas para habilitar / deshabilitar contenido específico en la tabla):
Herramientas de desarrollo de Chrome con captura de pantalla activada por Content-Encoding
Usa strace Primero, necesita detectar el PID del proceso nginx:
# ps ax | grep nginx
25043 ? Ss 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
25044 ? S 0:02 nginx: worker process
Ok, entonces 25044 es el proceso de trabajo. Ahora, lo rastreamos:
# strace -p 25044 2>&1 | grep gz
open("/var/www/css/ymax.css.gz", O_RDONLY|O_NONBLOCK) = 438
open("/var/www/css/patches/patch_my_layout.css.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/yaml/core/iehacks.css.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/js/koznazna5.js.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/css/ymax.css.gz", O_RDONLY|O_NONBLOCK) = 216
Como puede ver, está tratando de encontrar versiones .gz de archivos.
Usualmente uso las herramientas de Chrome Dev y miro el tamaño de los archivos en cuestión.