我已经在端口80上使用NginX侦听配置我的系统,提供静态内容并将动态请求代理到后端服务器。
我可以将NginX配置为缓存后端生成的内容,但我希望仅当Backend
以错误http 5xx
响应时,或者当它完全失效时才会提供此缓存内容。
我们尝试了proxy_cache_use_stale选项,最大年龄为1秒,但它有一个负面...这就是在这个1秒缓存老化内容期间从缓存提供的数十个请求。从缓存提供的这些请求将错过进一步的Backend
处理(例如Stats)。
我们只能承受这种负面影响 IF 后端已经失效,
因此,缓存将充当备份或故障转移解决方案。但只要backend
启动并响应,就不应该从缓存中提供任何请求。
我很感激任何提示
答案 0 :(得分:5)
答案 1 :(得分:0)
proxy_intercept_errors可能就是你要找的东西。
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors
答案 2 :(得分:0)
不幸的是,这是XY问题的经典实例,其中询问有关尝试解决的问题Y而不是实际问题X的问题。
此处给出了实际问题的解决方案:https://stackoverflow.com/a/52232860/891636