Varnish后端主机的健康状态检查
2017-08-28 20:13
323 查看
author:JevonWei
版权声明:原创作品
程序服务器
图片服务器
Vernish
Varnish查看后端主机的健康状态
图片服务端故障了一台服务器
Varnish查看后端主机的健康状态
imgsrv1后台服务器端故障,不能正常使用
Varnish检测后端服务器的健康状态
imgsrv1后台服务器端故障,不能正常使用
Varnish检测后端服务器的健康状态
修复imgsrv1,使imgsrv1上线1
版权声明:原创作品
配置后端主机的Health Check
环境Varnish 192.168.198.139 图片服务端 192.168.198.120 程序服务端 192.168.198.128
程序服务器
[root@danran ~]# vim /var/www/html/.healthchk.html ok
图片服务器
[root@centos6 ~]# vim /data/web/image2/.healthchk.html oK [root@centos6 ~]# vim /data/web/images/.healthchk.html ok
Vernish
[root@danran ~]# vim /etc/varnish/default.vcl 导入directors模块 import directors; 定义健康检查的机制,自定义为healthchk probe healthchk { .url = "/.healthchk.html";\\检查的url为.healthchk.html .timeout = 2s; \\超时时间为2s .interval = 2s;\\检查间隔时间 .window = 8; \\基于最近8次的检查判断 .threshold = 5; \\检查最近8次若有5次成功即为健康状态 } 定义一个app程序后端服务器 backend appsrv1 { .host = "192.168.198.128"; .port = "80"; .probe = healthchk; \\调用健康检查的机制 } 定义两个图片服务端 backend imgsrv1 { .host = "192.168.198.120"; .port = "80"; .probe = healthchk; \\调用健康检查的机制 } backend imgsrv2 { .host = "192.168.198.120"; .port = "8080"; .probe = healthchk; \\调用健康检查的机制 } 定义一个图片服务器组imgsrvs,并将imgsrv1和imgsrv2两个后端图片服务器添加进imgsrvs组中 sub vcl_init { new imgsrvs = directors.round_robin(); \\指定调度算法为轮询 imgsrvs.add_backend(imgsrv1); imgsrvs.add_backend(imgsrv2); } sub vcl_recv { if (req.url ~ "(?i)\.(jpg|jpeg|png|gif|svg|txt)$") { set req.backend_hint = imgsrvs.backend(); } else { set req.backend_hint = appsrv1; } } [root@danran ~]# varnish_reload_vcl \\重新加载/etc/varnish/default.vcl参数文件
Varnish查看后端主机的健康状态
[root@danran ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 backend.list 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 \\Healthy为健康状态,检测了8次,8次成功 imgsrv1(192.168.198.120,,80) 7 probe Healthy 8/8 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8
图片服务端故障了一台服务器
添加一条防火墙规则,禁止8080端口的连接,即等同于imgsrv2服务器的故障 [root@centos6 ~]# iptables -A INPUT -p tcp --dport 8080 -j REJECT
Varnish查看后端主机的健康状态
[root@danran ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 backend.list 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 probe Healthy 8/8 imgsrv2(192.168.198.120,,8080) 6 probe Sick 0/8 \\检查80次,0次成功,即imgsrv2服务端故障,从而imgsrv2不可用 修复使imgsrv2上线后,imgsrv2恢复正常状态 [root@danran ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 backend.list 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 probe Healthy 8/8 imgsrv2(192.168.198.120, 4000 ,8080) 6 probe Sick 4/8 \\Sick为失败状态 backend.list 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 probe Healthy 8/8 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 5/8 \\当检查次数大于等于5次时,即表示该服务端可以正常使用
Varnish手动使某后台服务端下线,即修改服务器健康状态为sick
[root@Varnish ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 backend.set_health imgsrv1 sick 200 \\将imgsrv1服务器的状态手动修改为sick故障状态 backend.set_healtlist 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 sick Healthy 8/8 \\imgsrv1状态为sick故障状态 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8
将手动修改为sick状态的后台服务器端上线,即将状态修改为health
[root@Varnish ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 backend.set_health imgsrv1 healthy 200 \\将imgsrv1服务器的状态手动修改为healthy健康状态,即不管物理后台服务器端是否正常,varnish检测结果都为正常 backend.set_healtlist 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 sick Healthy 8/8 \\imgsrv1状态为sick故障状态 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8 backend.set_healtlist 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 healthy Healthy 8/8 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8
imgsrv1后台服务器端故障,不能正常使用
[root@imgsrv1 ~]# iptables -A INPUT -p tcp --dport 80 -j REJECT
Varnish检测后端服务器的健康状态
[root@Varnish ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 backend.list 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 healthy Sick 0/8 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8
将手动修改为sick状态的后台服务器端上线,即将状态修改为health
[root@Varnish ~]# varnishadm -S /etc/varnish/secret -T backend.set_healtlist 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 sick Healthy 8/8 \\imgsrv1状态为sick故障状态 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8 backend.set_health imgsrv1 auto 200 backend.set_healtlist 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 probe Healthy 8/8 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8
imgsrv1后台服务器端故障,不能正常使用
[root@imgsrv1 ~]# iptables -A INPUT -p tcp --dport 80 -j REJECT
Varnish检测后端服务器的健康状态
[root@Varnish ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 backend.set_healtlist 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 probe Sick 0/8 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8
修复imgsrv1,使imgsrv1上线1
[root@Varnish ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 backend.set_healtlist 200 Backend name Refs Admin Probe appsrv1(192.168.198.128,,80) 7 probe Healthy 8/8 imgsrv1(192.168.198.120,,80) 7 probe Healthy 8/8 imgsrv2(192.168.198.120,,8080) 6 probe Healthy 8/8
相关文章推荐
- Varnish后端主机的健康状态检查
- Varnish后端主机的健康状态检查
- Varnish后端主机的健康状态检查
- 如何利用nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查
- nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查报403错误【转】
- 利用ldirectord实现lvs后端realserver健康状态检查
- LVS服务脚本及后端服务健康状态检查
- LVS均衡负载(三) LVS后端服务健康状态检查
- nginx对后端节点的健康检查
- Exchange 服务器健康状态检查工具
- 使用ldirectord实现后端RS健康状态监测及LVS调度功能
- Nginx实战系列之功能篇----后端节点健康检查
- CentOS7.2 nginx1.10.1 增加后端健康检查upstream_check模塊
- Nginx--后端节点健康检查
- Nginx实战之--后端节点健康检查
- Zabbix监控Tengine 后端服务器健康检查
- nginx 主动式后端服务器健康检查
- Nginx负载均衡+后端节点健康检查安装部署文档
- Varnish实现缓存、后端负载均衡和状态检测
- Tengine笔记3:Nginx的反向代理和健康状态检查