我正在寻找一个缓存反向代理(类似于squid或varnish),在发生故障时能够很好地支持过时的内容 - 换句话说,如果我代理的应用程序消失或开始提供内部服务器错误我希望缓存继续提供从后端保存的最后一个好的响应。基本上我希望缓存服务器在出现问题时充当额外的保护层。
有没有人配置过Squid或者类似的东西呢?知道任何支持这种开箱即用的产品吗?
答案 0 :(得分:7)
Squid可以在2.7版本中执行此操作。具体来说,使用 stale-if-error 指令。有关详细信息,请访问:
答案 1 :(得分:3)
看起来Varnish还不能处理这个要求:http://varnish.projects.linpro.no/ticket/369
答案 2 :(得分:2)
这取决于“不可用”的时间长短。 Squid有一个配置'refresh_stale_hit',主要用于通过在更新缓存时提供稍微陈旧的内容来消除一些延迟。但是,请确保它不会覆盖从Web服务器获取错误响应。有一个完全“离线”模式,将继续提供缓存结果(专为......等待它...离线使用!)所以代码路径在那里:不确定是否可以将它配置为两个代理好的结果,并忽略不好的结果。