如何配置Nginx不返回缓存错误

时间:2015-07-02 14:14:19

标签: json caching nginx

我们有一个nginx来缓存API调用的json返回值(例如{" returnVal":10})。由于一些商业考虑,我们必须将刷新间隔设置为1小时。我们遇到这样的情况:有时api调用返回json响应{" returnVal":null}由于一些间歇性错误而nginx缓存了这个" null"并在下次刷新之前为所有API调用提供服务。我可以将nginx配置为在错误/空值时不缓存返回值吗?

1 个答案:

答案 0 :(得分:0)

HTTP错误代码(4xx,5xx)是设置和控制缓存的最佳选择,因此您可以执行以下操作:

 proxy_cache_valid      200 1m;
 proxy_cache_valid      403 1h;

如果设置特定标题出现问题,您可以将缓存键设置为正文(仅当错误响应正文相同但没有错误总是不同时才有效):

proxy_cache_key "$request_uri|$request_body";