如何为脚本生成的图像设置nginx缓存?

时间:2016-07-24 16:30:03

标签: caching nginx

我有一个脚本,直接生成和输出图像(使用http://glide.thephpleague.com/)。

所有图片均来自/img/

如何配置NGINX以缓存它们,绕过脚本并直接提供图像?

E.g。它应该从脚本中捕获响应,将图像放在某处(如果在单独的服务器上最好)并直接在后续请求中提供

1 个答案:

答案 0 :(得分:1)

如果您想要更完整的答案,则需要提供您的nginx配置。

按照标准缓存设置,here应该可以解决问题。如果您总是在/img/之外提供文件,那么您可以执行以下操作:

location ^~ /img/ {
    alias /absolute/path/to/img/folder;
    expires 31d; #or whatever you prefer
    add_header Vary Accept-Encoding;
    add_header Pragma public;
    add_header Cache-Control public;

    error_page 404 = @your_upstream_generating_the_files;
}

这样做首先检查/img/文件夹是否存在文件。如果不是,您希望将其传递给您的应用程序,以便它可以为您生成它。下次请求资源时,它将从/img/文件夹中提供它。