Drupal7,Varnus4.0,Ubuntu12.4
清漆是安装了一个工作,但返回间歇式503,我认为每当清漆去后端。即使请求返回503,页面刷新也可能返回200,从缓存命中。另一次刷新可以是200或503。我认为接下来的503是一次传球。
我们已经打开了超时,如下所示:
vcl 4.0;
backend default {
.host = "127.0.0.1";
.port = "8080";
.probe = {
.url = "/ping";
.timeout = 600s;
.interval = 600s;
.window = 5;
.threshold = 2;
}
.first_byte_timeout = 900s; # How long to wait before we receive a first byte from our backend?
.connect_timeout = 500s; # How long to wait for a backend connection?
.between_bytes_timeout = 200s; # How long to wait between bytes received from our backend?
}所以我想这并不是说瓦尼什在眨眼之间就被淘汰了。
问题可能在vcl中;这就是我正在使用的:https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl
下面是对同一页连续调用3次清漆日志的片段: 503,然后是200,然后再调用503:
First call - returns 503
- VCL_call BACKEND_FETCH
- VCL_return fetch
- FetchError no backend connection
- Timestamp Beresp: 1408509130.524000 0.000219 0.000219
- Timestamp Error: 1408509130.524013 0.000232 0.000013
- BerespProtocol HTTP/1.1
- BerespStatus 503
- BerespReason Service Unavailable
- BerespReason Backend fetch failed
- BerespHeader Date: Wed, 20 Aug 2014 04:32:10 GMT
- BerespHeader Server: Varnish
- VCL_call BACKEND_ERROR
- BerespHeader Content-Type: text/html; charset=utf-8
- BerespHeader Retry-After: 5页面刷新-从缓存VCL_return散列返回200 - VCL_call哈希- VCL_return查找-命中2147745802 - VCL_call命中- VCL_return交付- RespProtocol HTTP/1.1 - RespStatus 200 - RespReason确定
另一次刷新--再次返回503。
任何线索,以使vcl正确的赏识。
发布于 2014-12-07 22:26:10
您链接到的VCL和问题中的示例显示您只使用了一个后端。在这种情况下,使用探针进行健康检查是没有用的。根据漂泊者的答案,禁用探测解决了很多503个问题,因为你不需要它,问题是解决了。
但是,如果您正在测试如何在多个后端上展开,那么它仍然需要修复(理解)。
查看VCL (https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl),它使用了许多从https://www.varnish-software.com/获取的部分,因此我们可以假设(希望)它们是正确的。
当前,您的探针正在检查主机和端口127.0.0.1:8080的"/ping“响应,因此是127.0.0.1:8080/ping。
如果您的设置是一个服务器上的多个虚拟主机,带有清漆坐席,那么使用像这样的探测将不会得到响应(因为这个完整的url很可能还没有配置),这反过来会导致后端被标记为“病态/不健康”,而503将被生成,因为varnish甚至不会尝试访问后端。
若要确认这是您的服务器设置,请将以下内容添加到您的探针中
backend default {
.host = "127.0.0.1";
.port = "8080";
.probe = {
.request =
"HEAD / HTTP/1.1"
"Host: www.EXAMPLE.com"
"Connection: close";
}
}您需要将www.EXAMPLE.com更改为在服务器上使用的实际域。
如果这给了您200秒而不是503秒,那么就可以确定在服务器设置时使用探测是不兼容的。
探测器信息:https://www.varnish-cache.org/docs/trunk/reference/vcl.html#reference-vcl-probes
发布于 2014-10-05 06:08:13
在配置和Drupal示例中,我也遇到了相同的问题(503)。我通过注释掉后端配置的.probe部分来解决这个问题。但不知道这有什么用。
https://drupal.stackexchange.com/questions/127202
复制相似问题