潇湘夜雨移动版

主页 > 软件与服务 >

varnish缓存服务器配置(8)

 

 

六、Varnish检测后端主机的健康状态
   Varnish可以检测后端主机的健康状态,在判定后端主机失效时能自动将其从可用后端主机列表中移除,而一旦其重新变得可用还可以自动将其设定为可用。为了避免误判,Varnish在探测后端主机的健康状态发生转变时(比如某次探测时某后端主机突然成为不可用状态),通常需要连续执行几次探测均为新状态才将其标记为转换后的状态。
   每个后端服务器当前探测的健康状态探测方法通过.probe进行设定,其结果可由req.backend.healthy变量获取,也可通过varnishlog中的Backend_health查看或varnishadm的debug.health查看。

.probe中的探测指令常用的有:
   (1) .url:探测后端主机健康状态时请求的URL,默认为“/”;
   (2) .request: 探测后端主机健康状态时所请求内容的详细格式,定义后,它会替换.url指定的探测方式;比如:
   .request =
       "GET /.healthtest.html HTTP/1.1"
       "Host: www.magedu.com"
       "Connection: close";
   (3) .window:设定在判定后端主机健康状态时基于最近多少次的探测进行,默认是8;
   (4) .threshold:在.window中指定的次数中,至少有多少次是成功的才判定后端主机正健康运行;默认是3;
   (5) .initial:Varnish启动时对后端主机至少需要多少次的成功探测,默认同.threshold;
   (6) .expected_response:期望后端主机响应的状态码,默认为200;
   (7) .interval:探测请求的发送周期,默认为5秒;
   (8) .timeout:每次探测请求的过期时长,默认为2秒;

backend webserver {
   .host = 
"www.test.com";    # 定义后端主机
   .probe = {

      .url = "/.healthtest.html";  # 向后端主机获取这个页面

      .interval = 1s;   # 每隔1秒钟尝试一次

      .window = 5;      # 最多尝试5次,判断采样的样本

      .threshold = 2;   # 如果采样5次,如果有2次是错误的,就认为是失败的,上线也是一样

   }
}
(责任编辑:liangzh)