天天看点

记一次varnish异常/故障

公司一varnish集群运行很久了,一直很稳定,没发现什么问题。最近开发那边反馈新传的静态文件访问不了。出现以下错误:

error 503 service unavailable

guru meditation:

xid: 1267841165

cache server 5443

检查varnish启动配置,

ps -ef | grep varnish

usr/sbin/varnishd -p /var/run/varnish.pid -a :80 -f /etc/varnish/default.vcl -t 127.0.0.1:6082 -t 0 -w 100,30000,600 -s malloc,13g -p http_max_hdr 256 -p http_req_hdr_len 8192 -p http_resp_hdr_len 8192 -p thread_pool_max 9000 -p thread_pools 8 -p queue_max 600 -p listen_depth 8192 -p lru_interval 300 -p sess_timeout 60 -p gzip_level 8 -h classic,600007

判断不是这里有问题。

另外,服务器剩余内存还有很多,确定不是内存问题。

检查了后台静态文件服务器,也没发现问题。

重启varnish之后,503的问题暂时得以解决。但是发现新上传的静态文件还是503.

后来发现,varnish配置文件里,有一条检测后端健康状态的配置如下:

probe probe_ask_iis {

.interval = 60s;

.timeout = 5s;

.window = 10;

.threshold = 4;

.initial = 10;

.request = 

"head /css/305css.css http/1.1"

"host: www.ooxx.com"

"connection: close";

}

询问开发,开发说他们最近整理静态资源,shanchu(这2个字?也敏感?)了/css/305css.css文件,至此故障原因终于浮现。

解决:恢复了这个文件,按个重启varnish服务。

后话:本人觉得这个配置没有什么意义!除非你的varnish后端有多台server.