使varnish cache成为ESI失败的综合响应

时间:2017-07-12 06:19:07

标签: caching varnish-vcl varnish-4 esi

我们使用清漆4进行缓存和处理ESI。对于返回5XX后端错误的ESI请求,我们返回一个空的合成响应。

该空响应应缓存几秒钟,因为当前对同一ESI的每个后续请求都会再次命中后端。只要5XX响应的原因很昂贵,就会对我们的后端产生很大的负担。

sub vcl_backend_error {
    ....
    if (isAnESI && beresp.status >= 500 && beresp.status <= 599) {
        synthetic({""});

        return(deliver);
    }
}

我们尝试在响应中添加Retry-After标头,但这不起作用。

set beresp.http.Retry-After = "5";

0 个答案:

没有答案