【问题标题】:Varnish Pass - request coalescingVarnish Pass - 请求合并
【发布时间】:2021-12-02 08:58:24
【问题描述】:

我有一个 varnish 4 设置 - nginx ssl 终止 -> varnish -> varnish rr 到 4 个 apache 后端

我们基本上不需要缓存任何未在传入请求中设置特定 cookie 的请求,所以在我的 vcl_recv 中我有:

if (!req.http.Cookie ~ "cookiename") {
    return(pass);
        }

这最初工作正常,但随着时间的推移(10 分钟左右)它是一个繁忙的站点,我们的后端故障和繁忙的睡眠/唤醒正在增加,我们从清漆本身得到 503,但后端很好并且不要似乎没有任何实际负载。这让我认为请求已排队并按顺序发送到后端,它会跳过任何请求合并。

我真的找不到任何支持这一点的东西,是这样吗?还是有更好的方法来做到这一点?非常感谢您的反馈。

谢谢

【问题讨论】:

    标签: varnish varnish-vcl varnish-4


    【解决方案1】:

    通过的请求不是请求合并候选者。请求合并仅适用于可缓存资源。

    这意味着请求通过vcl_miss,但最终不会成为vcl_backend_response 中的Hit-For-Miss/Hit-For-Pass 对象。

    请使用以下命令监控潜在的HTTP 503 错误:

    varnishlog -g request -q "BerespStatus == 503"
    

    它将让您找出错误发生的原因。

    【讨论】:

      猜你喜欢
      • 2015-11-14
      • 2017-08-11
      • 1970-01-01
      • 2014-04-07
      • 2018-07-05
      • 2015-08-29
      • 2016-02-03
      • 2012-06-17
      • 2021-06-04
      相关资源
      最近更新 更多