首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal 7清漆4.0 vcl

Drupal 7清漆4.0 vcl
EN

Drupal用户
提问于 2014-08-20 04:59:31
回答 2查看 3.7K关注 0票数 2

Drupal7,Varnus4.0,Ubuntu12.4

清漆是安装了一个工作,但返回间歇式503,我认为每当清漆去后端。即使请求返回503,页面刷新也可能返回200,从缓存命中。另一次刷新可以是200或503。我认为接下来的503是一次传球。

我们已经打开了超时,如下所示:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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_call散列
  • VCL_return查找
  • 调试"XXXX命中传球“
  • HitPass 2147811368
  • VCL_call PASS
  • VCL_return提取
  • 链接贝雷克196777通
  • 时间戳提取: 1408509419.224633 0.000666 0.000666
  • RespProtocol HTTP/1.1
  • RespStatus 503
  • RespReason后端获取失败

任何线索,以使vcl正确的赏识。

EN

回答 2

Drupal用户

发布于 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甚至不会尝试访问后端。

若要确认这是您的服务器设置,请将以下内容添加到您的探针中

代码语言:javascript
复制
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

票数 1
EN

Drupal用户

发布于 2014-10-05 06:08:13

在配置和Drupal示例中,我也遇到了相同的问题(503)。我通过注释掉后端配置的.probe部分来解决这个问题。但不知道这有什么用。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/127202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档