【问题标题】:Varnish 503 after 200 from backend后端 200 后清漆 503
【发布时间】:2016-09-21 23:52:15
【问题描述】:

我在 Centos 7.2 上有一个 Varnish 4.0.3 服务器。 Varnish 配置了三个后端。我收到来自 Varnish 的间歇性 503。我在 503 事件期间拉了一个 tcpdump,我看到了:

  • 消费者向 Varnish 提出请求
  • Varnish 打开到后端的套接字。
  • 后端响应时间
  • Varnish 向后端发送一个 ACK​​,FIN。
  • Varnish 向消费者发送 503。
  • 后端向 Varnish 发送 ACK、FIN

失败的请求与成功的请求在根本上看起来并没有什么不同。失败率约为每 20k 个请求 1 个。

  -   Begin          req 2795361 rxreq
  -   Timestamp      Start: 1464106437.502383 0.000000 0.000000
  -   Timestamp      Req: 1464106437.502383 0.000000 0.000000
  -   ReqStart       10.14.X.X 43190
  -   ReqMethod      GET
  -   ReqURL         /service/v2/service/parameter/parameter/parameter
  -   ReqProtocol    HTTP/1.1
  -   ReqHeader      Accept: application/json
  -   ReqHeader      Content-Type: application/json
  -   ReqHeader      Host: UpsteamLoadBalancer:6081
  -   ReqHeader      Connection: Keep-Alive
  -   ReqHeader      User-Agent: Apache-HttpClient/4.2.4 (java 1.5)
  -   ReqHeader      X-Forwarded-For: 10.14.X.X
  -   VCL_call       RECV
  -   ReqURL         /service/v2/service/parameter/parameter/parameter
  -   ReqUnset       X-Forwarded-For: 10.14.X.X
  -   ReqHeader      X-Forwarded-For: 10.14.X.X
  -   VCL_return     hash
  -   VCL_call       HASH
  -   VCL_return     lookup
  -   Debug          "XXXX MISS"
  -   VCL_call       MISS
  -   VCL_return     fetch
  -   Link           bereq 2795368 fetch
  -   Timestamp      Fetch: 1464106442.526296 5.023913 5.023913
  -   Timestamp      Process: 1464106442.526311 5.023929 0.000015
  -   RespHeader     Date: Tue, 24 May 2016 16:14:02 GMT
  -   RespHeader     Server: Varnish
  -   RespHeader     X-Varnish: 2795367
  -   RespProtocol   HTTP/1.1
  -   RespStatus     503
  -   RespReason     Service Unavailable
  -   RespReason     Service Unavailable
  -   VCL_call       SYNTH
  -   RespHeader     Content-Type: text/html; charset=utf-8
  -   RespHeader     Retry-After: 5
  -   VCL_return     deliver
  -   RespHeader     Content-Length: 281
  -   Debug          "RES_MODE 2"
  -   RespHeader     Connection: keep-alive
  -   Timestamp      Resp: 1464106442.526356 5.023974 0.000045
  -   ReqAcct        290 0 290 211 281 492
  -   End

【问题讨论】:

  • 嘿斯坦,你还有这个问题吗?如果是这样,你能发布你的 VCL 吗?
  • @alejdg 我们解决了这个问题——如果我没记错的话,Varnish 的缓存太小了(默认的 100mb?)。缓存已满时发生故障 (1/20000)。我们增加了缓存,问题就消失了。感谢后续!

标签: varnish varnish-4


【解决方案1】:

您的客户端正在使用 HTTP 与 Varnish 进行通信。

HTTP 响应 503 表示“由于服务器临时过载或维护,服务器当前无法处理请求。暗示这是一种临时情况,经过一段时间后会得到缓解”。

所以这个错误是由 Varnish 服务器发送的,表明上述原因。

问候, 苏丹苏

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-23
    • 2017-11-24
    • 2017-07-21
    • 2018-07-18
    • 2014-10-25
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多