NGINX:我可以将 proxy_no_cache 指令与上游响应主体一起使用进行条件缓存吗?

NGINX:我可以将 proxy_no_cache 指令与上游响应主体一起使用进行条件缓存吗?

我们在第三方服务前面使用 Ngnix 作为缓存代理,并有以下指令来确保状态代码为 200 的上游响应被缓存...

proxy_cache_valid 200 364d

问题是,当给定的搜索未找到任何结果时,第三方服务会返回 200。响应主体中的 JSON 参数会指示这一点docs: []

是否可以proxy_no_cache在上游主体内容上使用 或任何其他带有正则表达式的指令,以便我们不会缓存这些“空”响应?也不存在指示“空”响应的标头。

短暂性脑缺血发作

答案1

不。nginx 不会将响应有效负载作为变量提供。这是执行此类操作所需的最低要求。

您可以创建另一个应用程序来执行上游请求、解析响应并设置 HTTP 标头,以告知 nginx 是否应缓存响应。或者它可以直接为空响应设置 404 响应。

相关内容