Caching 使varnish缓存成为失败ESI的合成响应

Caching 使varnish缓存成为失败ESI的合成响应,caching,varnish-vcl,varnish-4,esi,Caching,Varnish Vcl,Varnish 4,Esi,我们使用varnish 4来缓存和处理ESI。对于返回5XX后端错误的ESI请求,我们返回一个空的合成响应 该空响应应该缓存几秒钟,因为当前对同一ESI的每个后续请求都会再次命中后端。当5XX响应的原因非常昂贵时,这会在我们的后端造成沉重的负载 sub vcl_backend_error { .... if (isAnESI && beresp.status >= 500 && beresp.status <= 599) {

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

该空响应应该缓存几秒钟,因为当前对同一ESI的每个后续请求都会再次命中后端。当5XX响应的原因非常昂贵时,这会在我们的后端造成沉重的负载

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

        return(deliver);
    }
}
set beresp.http.Retry-After = "5";