1

我们在 Varnish 3.0 中遇到了一个奇怪的问题。在我们的清漆场中,我们观察到每个节点每分钟出现 10-20 次故障。在这种情况下,Varnish 与负载均衡器应用程序 (F5) 前端的后端服务器通信。我们在 Varnish 层和负载均衡器层上进行了 TCP 转储。后端服务器似乎在大约 3 秒内响应。在 TCP 转储中,我们看到 Varnish 在 3 秒后收到 200 Ok。在此之后,我们看到了奇怪的行为。Varnish 服务器在几毫秒内将 ACK 消息发送到负载均衡器。FIN、ACK 消息在大约 10 秒的延迟后发送。这次匹配 Varnish 层中的 10 秒配置,我们看到 Varnish 层返回 503 错误。这是 Varnish 后端配置。

    backend backend1{
        .host = "<load balancer virtual server name>"; 
        .port = "<port>";
        .first_byte_timeout     = 120s;    
        .connect_timeout        = 10s;     
        .between_bytes_timeout  = 10s;     
    }

有没有人遇到过类似的问题。任何有关解决此问题的指示将不胜感激。

4

1 回答 1

0

问题似乎出在between_bytes_timeout配置中。您已将其设置为 10 秒,根据您的说法,负载均衡器需要 10 秒来发送 FIN、ACK 消息。从清漆文档

between_bytes_timeout
单位:s
默认值:60

从后端接收数据时字节之间的默认超时。在放弃之前,我们只在字节之间等待这么多秒。值为 0 意味着它永远不会超时。VCL 可以为每个后端请求和后端请求覆盖这个默认值。此参数不适用于管道。

尝试增加这个数字,看看会发生什么

于 2016-07-29T04:21:00.283 回答