在Varnish 4之前,有人可以从vcl_fetch调用重启来启动另一个到达vcl_recv的流程。
在版本4中,逻辑被分离为客户端和后端,我需要能够根据后端响应调用重启。我认为可能的一个方向是使用vcl_synth作为后端和客户端之间的中间件,但后端不能发送特定的错误代码或只发送标准503错误。
有什么想法吗?
答案 0 :(得分:0)
您无法在Varnish 4.x中的vcl_backend_*
期间重新启动请求。
您可以在return (abandon)
期间vcl_backend_*
然后在vcl_synth
resp.status == 503
中重新启动请求,但无法将vcl_backend_*
中的任何信息传输到vcl_synth
为了实现更智能的条件。
作为替代方案,您可以根据后端返回的内容在vcl_deliver
期间执行重新启动。