清漆探针总是返回生病的后端
问题描述:
我有端口80上运行的清漆和运行在同一台机器上的端口8088上的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 [email protected]
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>
赞赏任何想法。
感谢,
答
探测器是成功的,如果返回的HTTP状态200 OK
。目前您的探针会重定向302 Found
,因此它会将后端标记为不适。
您需要确保curl -IL http://127.0.0.1:8088/ -H "magento2.dev"
不返回任何重定向。 (Magento的设置吗?)
下面的命令在排除故障时生病后端更加有用,因为它会告诉你返回的HTTP状态:
varnishlog -g raw -i Backend_health