У меня есть настройка, в которой сценарий PHP динамически создает изображения в зависимости от размера и устройства, запрашивающего их.
Все работает нормально, за исключением установки более высокого срока действия кеша для изображений, когда они загружаются с PHP.
У меня есть блок местоположения, показанный ниже, который проверяет наличие статического файла и, если он не существует, передает его в блок местоположения PHP (также показано ниже).
# pass the PHP scripts to FastCGI server
#
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
expires 30m;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
# Dynamic Images
location ~* \.(?:gif|jpg|jpeg|png|webp)$ {
try_files $uri /index.php;
expires 1M;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
В идеале я бы хотел, чтобы заголовок управления кешем по умолчанию 30 м для всего контента, включая HTML, а затем имел 1 м для изображений. Есть ли способ сделать это, учитывая, что файлы изображений возвращаются на основе сценария PHP?
Спасибо, Мэтт