选择性地设置 Nginx 过期 epoch 标头

选择性地设置 Nginx 过期 epoch 标头

我的服务器上有一个包含图像的文件夹,它用于通过 CDN 为移动应用程序提供服务,并与用于管理交付给应用程序的内容的后端 Web 应用程序配合使用。对于后者(后端 Web 应用程序),我希望确保从相关文件夹交付的图像不会被浏览器缓存,这样我就可以在其作者更新后立即在后端应用程序中显示更新的版本。CDN 会提取相同的图像以交付给移动应用程序,并将其刷新设置为 30 分钟,这样它就不会交付过时的内容图像。

我的问题 - 如何配置 Nginx,以便它只expires epoch为来自 webapp 的请求注入标头。这个问题的部分答案是这个 SO 线程。有没有办法修改那里提出的解决方案,使其在注入标头之前检查引荐来源?因此,例如,所有来自的请求https://example.com/backoffice都使用标头进行响应,expires epoch而其他请求(例如来自 CDN 拉取请求的请求)则不会。

答案1

这里简单说if一下就足够了:

server {

    location ... {

        if ($http_referer ~* ^https://example.com/backoffice) {
            expires epoch;
        }

    }

}

请记住,一般来说极大地最好让您的 Web 应用程序做出缓存决策并使用适当的指令做出响应。

相关内容