0

在 Varnish 4 之前,可以从 vcl_fetch 调用重新启动以启动另一个到达 vcl_recv 的流。

在版本 4 中,逻辑被分离到客户端和后端,我需要能够根据后端响应调用重启。我认为可能的一个方向是使用 vcl_synth 作为后端和客户端之间的中间件,但后端无法发送特定的错误代码或仅 msg 标准 503 错误。

有任何想法吗?

4

1 回答 1

0

您无法vcl_backend_*在 Varnish 4.x 中重新启动请求。

您可以在ifreturn (abandon)期间vcl_backend_*然后重新启动请求,但您不能从to传输任何信息以实现更智能的条件。vcl_synthresp.status == 503vcl_backend_*vcl_synth

作为替代方案,您可以vcl_deliver根据后端返回的任何内容执行重启。

于 2016-09-12T10:22:41.487 回答