Как я могу проверить, что статический модуль nginx gzip работает?
Как я могу проверить, что nginx обслуживает .версия ГЗ статических файлов, если они существуют?
я скомпилировал nginx со статическим модулем gzip, но я не вижу никакого упоминания о нем .версия gz обслуживается в моих журналах. (Я уменьшил global.js и global.css файлы С.GZ версии их в том же каталоге).
соответствующая часть nginx.conf выглядит так:
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;
любой указатели будут оценены.
6 ответов
используйте strace. Во-первых, вам нужно обнаружить PID процесса 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, поэтому 25044-это рабочий процесс. Теперь мы проследим его:
# 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
Как вы можете видеть, он пытается найти .GZ-версий файлов.
изменить содержимое файла без gzipped. А потом ... --0--> оба файла (одновременно-то есть: в одном экземпляре touch
). Если при загрузке файла в браузер (Cache-wiped) вы получаете неизмененный файл, то nginx обслуживал статический-кэшированный-gzipped файл.
простой способ избежать
Я бы отключил автоматическое сжатие и журнал 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;
}
}
обратите внимание, что вы можете переопределить gzip
, gzip_static
и access_log
на уровне сервера и местоположения.
есть некоторые намеки, которые я заметил относительно ETag
заголовок ответа.
если статический файл обслуживается nginx, то заголовок выглядит так:ETag: "135a-BQhu6KL71dyeCXcVZme6ug"
, однако, когда nginx сжимает ответ (через модуль gzip), он выглядит так:ETag: W/"135a-BQhu6KL71dyeCXcVZme6ug"
(уведомление W/
).
вы можете использовать это, а также Content-Encoding: gzip
чтобы различать простые статические файлы, предварительно сжатые статические файлы и файлы, сжатые на лету.
вы можете использовать инструменты Chrome Dev через вкладку Сеть, если вы включите столбец кодирования содержимого (щелкните правой кнопкой мыши на столбцах, чтобы включить / отключить определенный контент в таблице):
Chrome Dev Tools с поддержкой столбца кодирования содержимого скриншот