我正在使用清漆来缓存我网站的内容。它按预期工作,但有一个问题。随机返回一个 503 错误,这真的很奇怪,因为应用程序服务器正常,负载低于 0.8,数据库服务器也正常。这是我的配置的一部分:
backend app05 {
.host = "app05.site.com";
.port = "80";
.connect_timeout = 0.7s;
.first_byte_timeout = 30s;
.between_bytes_timeout = 30s;
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1s;
.window = 5;
.threshold = 3;
}
}
director app_director round-robin {
{ .backend = app01; }
{ .backend = app02; }
{ .backend = app03; }
{ .backend = app04; }
{ .backend = app05; }
}
sub vcl_fetch {
# remove all cookies
# unset beresp.http.set-cookie;
# cache for 12 hours
# set beresp.ttl = 2h;
# Don't allow static files to set cookies.
if (req.url ~ "(?i)\.(png|gif|jpeg|jpg|ico|swf|css|js|html|htm|mp4|flv)(\?[a-z0-9]+)?$") {
unset beresp.http.set-cookie;
set beresp.ttl = 12h;
} else {
set beresp.ttl = 30m;
}
# If the backend server doesn't return properly, don't send another connection to it
# for 60s and try another backend via restart.
#
# https://www.varnish-cache.org/docs/trunk/tutorial/handling_misbehaving_servers.html
# --
if(beresp.status == 500) {
set beresp.saintmode = 5m;
if (req.request != "POST") {
return(restart);
} else {
error 500 "Failed";
}
}
# Allow items to be stale if needed.
set beresp.grace = 1h;
}
我是否还必须添加到 if beresp.status == 503?