0

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

  • 消费者向清漆提出要求
  • Varnish 打开套接字到后端。
  • 后端在 < 500 毫秒内响应
  • 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
4

1 回答 1

0

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

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

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

问候, 苏丹苏

于 2016-05-24T17:10:05.183 回答