【问题标题】:Varnish probe always returning sick backend清漆探针总是返回生病的后端
【发布时间】:2017-09-12 23:07:18
【问题描述】:

我在同一台机器上的端口 80 上运行 Varnish,在端口 8088 上运行 Apache(我将其用于开发/测试)。

Apache在VCL中被定义为后端如下:

backend default {
    .host = "127.0.0.1";
    .port = "8088";
    .first_byte_timeout = 600s;
    .probe = {
        .request = "GET /index.php HTTP/1.1"
                "Host: example.com"
                "Connection: close";
        .interval = 5s;
        .timeout = 1s;
        .window = 10;
        .threshold = 8;
    }
}

如您所见,我设置了一个探针。但是,当我执行 varnishadm backend.list 时,我得到了

Backend name                   Refs   Admin      Probe
default(127.0.0.1,,8088)       1      probe      Sick 0/10

当我执行 wget 127.0.0.1:8088 我得到

--2017-04-17 10:20:20--  http://127.0.0.1:8088/
Connecting to 127.0.0.1:8088... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://magento2.dev/?SID=obcv7ifsq5b4ro9jr3hmpb7oi4 [following]
--2017-04-17 10:20:20--  http://magento2.dev/?SID=obcv7ifsq5b4ro9jr3hmpb7oi4
Resolving magento2.dev... 127.0.53.53
Connecting to magento2.dev|127.0.53.53|:80... connected.
HTTP request sent, awaiting response... 503 Backend fetch failed
2017-04-17 10:20:20 ERROR 503: Backend fetch failed.

那么可能是探测器收到 503 错误吗?由于请求将发送到 Varnish 而不是 Apache。还是我错了?

这里记录一下我的 Apache 虚拟主机设置:

<VirtualHost *:8088>
     ServerAdmin admin@example.org
     ServerName magento2.dev
     ServerAlias www.magento2.dev
     DocumentRoot "/var/www/magento2/"
         CustomLog /var/log/httpd/magento2.dev-access.log combined
         ErrorLog /var/log/httpd/magento2.dev-error.log
     <Directory "/var/www/magento2/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
     </Directory>
</VirtualHost>

任何想法表示赞赏。

谢谢,

【问题讨论】:

    标签: apache virtualhost varnish varnish-vcl


    【解决方案1】:

    如果返回的 HTTP 状态为 200 OK,则探测成功。目前,您的探测会重定向302 Found,因此它将后端标记为有病。

    您需要确保curl -IL http://127.0.0.1:8088/ -H "magento2.dev" 不返回任何重定向。 (Magento 设置?)

    以下命令在解决有问题的后端时更有用,因为它会显示返回的 HTTP 状态:

    varnishlog -g raw -i Backend_health
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      相关资源
      最近更新 更多