【问题标题】:Varnish 4.1 - Call a restart according to the backend responseVarnish 4.1 - 根据后端响应调用重启
【发布时间】:2017-01-19 03:21:57
【问题描述】:
在 Varnish 4 之前,可以从 vcl_fetch 调用重新启动以启动另一个到达 vcl_recv 的流。
在版本 4 中,逻辑被分离到客户端和后端,我需要能够根据后端响应调用重启。我认为可能的一个方向是使用 vcl_synth 作为后端和客户端之间的中间件,但后端无法发送特定的错误代码或 msg only 标准 503 错误。
有什么想法吗?
【问题讨论】:
标签:
varnish
varnish-vcl
varnish-4
【解决方案1】:
在 Varnish 4.x 中,您无法在 vcl_backend_* 期间重新启动请求。
您可以在vcl_backend_* 期间return (abandon),然后在vcl_synth 中重新启动请求,如果resp.status == 503,但您不能将任何信息从vcl_backend_* 传输到vcl_synth 以实现更智能的条件。
作为替代方案,您可以在vcl_deliver 期间根据后端返回的任何内容执行重启。