leverage images example enable control cache gzip nginx

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.



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.