对PHP生成的图像使用nginx静态文件缓存

时间:2015-05-01 19:47:11

标签: php nginx

我在我的nginx vhost配置中使用此代码来缓存我网站上的所有图像,scrips等:

location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
  expires 1M;
  access_log off;
  add_header Cache-Control "public";
}

此代码的问题在于它无法动态缓存由PHP生成的图像。其基础是这些文件没有.png或.jpg结尾。它们只有这种结构:domain.com/images/xyz.php?id = 123。

所以我的问题是: 我怎样才能缓存这些文件?有没有选择这样做,或者我必须编辑我的PHP脚本?

1 个答案:

答案 0 :(得分:0)

您可以将缓存指令添加到处理PHP的位置,也可以在images文件夹中为PHP文件创建位置,将PHP处理指令添加到此处,并将此新位置置于通用PHP请求的位置之上。

location ~* images/(+.)\.php$ {
    # Your PHP handling directives
    [....]

    expires 1M;
    access_log off;
    add_header Cache-Control "public";
}
location ~* \.php$ {
    # Your PHP handling directives
    [....]
}