我使用Nginx proxy_cache缓存来自Node服务器的响应。当该服务器脱机时,Nginx返回自定义502页面。到目前为止一切顺利...
当节点服务器重新联机时,Nginx会继续返回502页面5分钟(我的缓存时间)。如果我删除缓存目录中的所有文件,它没有任何区别。如果我重新启动Nginx,它会破坏缓存并再次开始提供真实内容。
Nginx缓存502s是正常的吗?请注意,它没有缓存来自后端服务器的502响应,因为它缓存了服务器无法访问的事实。
我该怎么办才能阻止这种情况?
答案 0 :(得分:6)
我设法自己解决了这个问题。 Nginx确实缓存了上游服务器无法访问的知识。
要解决此问题,我将缓存配置从proxy_cache_valid any 5m;
更改为proxy_cache_valid 5m;
删除any
意味着您只想缓存200,301和302个响应。