检查清漆4中的2个以上网络服务器的后端运行状况

检查清漆4中的2个以上网络服务器的后端运行状况

问题描述:

有3个后端的清漆服务器。所有的后端都是apache。一切正常,清漆服务器缓存我需要的一切,并且连接是可以的。我想监视Web服务器的健康状况。如果发生故障,清漆不会将请求发送到发生故障的Web服务器。问题是,当我为所有支持者启用探针时,出现503错误!如果我在一个或两个后端使用它,一切都可以,但是当我为3个后端启用它时,我得到了503错误。这里是为后端和健康检查清漆配置:检查清漆4中的2个以上网络服务器的后端运行状况

vcl 4.0; 

import directors; 

probe backend_healthcheck { 
    .url = "/"; 
    .timeout = 34 ms; 
    .window = 5; 
    .threshold = 3; 
    .interval = 1s; 

} 

backend web1 { 
    .host = "192.168.1.16"; 
    .port = "8080"; 
    .probe = backend_healthcheck; 
} 

backend web2 { 
    .host = "192.168.1.18"; 
    .port = "8080"; 
    .probe = backend_healthcheck; 
} 

backend web3 { 
    .host = "192.168.1.20"; 
    .port = "8080"; 
    .probe = backend_healthcheck; 
} 

sub vcl_init { 
    new apache = directors.round_robin(); 
    apache.add_backend(web1); 
    apache.add_backend(web2); 
    apache.add_backend(web3); 
} 

这很可能是你的健康检查的时间超过34毫秒的时间才能完成,所以尽量将其调整为3秒或更高:

probe backend_healthcheck { 
    .url = "/"; 
    .timeout = 3s; 
    .window = 5; 
    .threshold = 3; 
    .interval = 1s; 
} 

监视器如果上述内容没有帮助,则使用varnishlog -g raw -i Backend_health探针的状态并在此输出。

+0

谢谢。我们用您发送的命令解决了问题。 varnishlog -g raw -i Backend_health:'Backend_health - web3生病了4 - X-R- 0 3 5 0.000803 0.000000 HTTP/1.1 403 Forbidden'我在探针部分添加了'expected_response = 403;'并解决了问题。谢谢。 –