Вобщем делаю автоминификацию и сжатие при первом обращении к статическим файлам js и css
вот конфиг nginx
server {
if ($request_method !~ ^(GET|POST)$ ) {
return 444;
}
listen 80;
listen [::]:80;
server_name minify.sy24.ru;
root /home/synergy-demo/www/minify;
error_log /home/synergy-demo/logs/nginx_error_minify.log;
access_log /home/synergy-demo/logs/nginx_access_minify.log;
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~* \.(css|js)$ {
expires max;
gzip off;
gzip_static on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/synergy-demo/www/minify/nginx-minification.php;
if (!-f $request_filename.gz) {
fastcgi_pass unix:/var/run/php-fpm/synergy-demo.sock;
}
}
}
это даже работает т.е. если нет .gz для запрашиваемого файла запускается php скрипт nginx-minification.php, который делает gz файл и последующий запрос уже летит минуя .php
хочется доработать чтобы .gz файлы обновлялись если дата оригинального файла свежее файла .gz.
первое что насторожило это то что nginx продолжает отдавать .gz файл даже если дате его изменения старше чем у оригинального файла.
$ ls -la
total 68
drwxrwx--- 2 synergy-demo synergy-demo 4096 Nov 27 10:23 .
drwxrwx--- 4 synergy-demo synergy-demo 4096 Aug 15 12:56 ..
-rw-rw-r-- 1 synergy-demo synergy-demo 55839 Nov 27 10:40 main.js
-rw-r--r-- 1 synergy-demo synergy-demo 29 Nov 27 10:23 main.js.gz
тут всеравно отдается main.js.gz странно может быть это баг поправьте меня пожалуйста.
второй момент если это починят, то условие if (!-f $request_filename.gz) надо изменить таким образом чтоб оно знало какой файл собирается отдавать nginx, если .gz, то ничего не делаем, если оригинальный, то запустить надо php скрипт.