1. Nginx+keepalived对后端服务器心跳检查(需要自定义脚本)

原理:Keepalived并不跟nginx耦合,它俩完全不是一家人但是keepalived提供一个机制:让用户自定义一个shell脚本去检测用户自己的程序,返回状态给keepalived就可以了

#MASTER节点

global_defs {
} vrrp_script chk_health {
script "[[ `ps -ef | grep nginx | grep -v grep | wc -l` -ge 2 ]] && exit 0 || exit 1"
interval 1 #每隔1秒执行上述的脚本,去检查用户的程序ngnix
weight -2
} vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 1
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
} track_script {
chk_health
} virtual_ipaddress {
10.0.0.10/24
} notify_master "/usr/local/keepalived/sbin/notify.sh master"
notify_backup "/usr/local/keepalived/sbin/notify.sh backup"
notify_fault "/usr/local/keepalived/sbin/notify.sh fault"
}

#添加切换通知脚本:vi /usr/local/keepalived/sbin/notify.sh

#!/bin/bash

case "$1" in
master)
/usr/local/nginx/sbin/nginx
exit 0
;;
backup)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx
exit 0
;;
fault)
/usr/local/nginx/sbin/nginx -s stop
exit 0
;;
*)
echo 'Usage: notify.sh {master|backup|fault}'
exit 1
;;
esac

#添加执行权限:chmod +x /usr/local/keepalived/sbin/notify.sh

global_defs {
} vrrp_script chk_health {
script "[[ `ps -ef | grep nginx | grep -v grep | wc -l` -ge 2 ]] && exit 0 || exit 1"
interval 1
weight -2
} vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 1
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
} track_script {
chk_health
} virtual_ipaddress {
10.0.0.10/24
} notify_master "/usr/local/keepalived/sbin/notify.sh master"
notify_backup "/usr/local/keepalived/sbin/notify.sh backup"
notify_fault "/usr/local/keepalived/sbin/notify.sh fault"
}

#在第二台机器上添加notify.sh脚本

#分别在两台机器上启动keepalived

service keepalived start

chkconfig keepalived on

2. Lvs+keepalived对后端服务器心跳检查(不需要自定义脚本)

  1. 在两台(192.168.232.201和192.168.232.205) Lvs转发服务器上安装ipvsadm和Keepalived:yum -y install ipvsadm/keepalived

   2. 修改配置文件:vi  /etc/keepalived/keepalived.conf

    主机:Lvs+keepalived(MASTER)

global_defs {
#指定keepalived在发生切换时需要发送email到的对象
notification_email {
root@localhost #邮件接收者
}
notification_email_from lvs@localhost #邮件发送者
smtp_server 127.0.0.1 #邮件服务器地址,如未安装,使用本地
smtp_connect_timeout 30
router_id LVS_DEVEL
} #IP漂移协议
vrrp_instance VI_1 {
state MASTER #指定A节点为主节点 备分机上设置为BACKUP即可
interface eth0 #绑定IP漂移的网络接口,在该接口上绑定VIP
virtual_router_id 51 #VRRP组名,两个节点的设置必须一样
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.232.206/24 dev eth0 label eth0:1 #绑定VIP
}
} #只接收80端口过来的请求
virtual_server 192.168.232.206 80 {
delay_loop 6
lb_algo wlc #轮循
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP #RS服务器1
real_server 192.168.232.200 80 {
weight 1
   #健康检查
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
} #RS服务器2
real_server 192.168.232.204 80 {
weight 1
   #健康检查
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

    备机:Lvs+keepalived(BACKUP)

global_defs {
#指定keepalived在发生切换时需要发送email到的对象
notification_email {
root@localhost #邮件接收者
}
notification_email_from lvs@localhost #邮件发送者
smtp_server 127.0.0.1 #邮件服务器地址,如未安装,使用本地
smtp_connect_timeout 30
router_id LVS_DEVEL
} #IP漂移协议
vrrp_instance VI_1 {
state BACKUP #指定A节点为主节点 备分机上设置为BACKUP即可
interface eth0 #绑定IP漂移的网络接口,在该接口上绑定VIP
virtual_router_id 51 #VRRP组名,两个节点的设置必须一样
priority
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.232.206/24 dev eth0 label eth0:1 #绑定VIP
}
} #只接收80端口过来的请求
virtual_server 192.168.232.206 80 {
delay_loop 6
lb_algo wlc #轮循
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP #RS服务器1
real_server 192.168.232.200 80 {
weight 1
   #健康检查
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
} #RS服务器2
real_server 192.168.232.204 80 {
weight 1
   #健康检查
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

  3. 启动两台Lvs转发服务器的Keepalived服务:service keepalived start

  4.通过ifconfig命令查看主从Lvs转发服务器的网络接口:

    

    

  5.查看地址和端口号:ipvsadm -Ln

    

  6.使用浏览器进行访问:http://192.168.232.206:80/

    

   7.主机挂掉:init 6

    

  

5.Lvs+Keepalived健康检查的更多相关文章

  1. LVS节点健康检查及管理脚本

    在LVS负载均衡主节点上,模拟keepalived健康检查功能管理LVS节点,当节点挂掉从服务器池中剔除,好了再加到服务器池中来. 工具:yum install -y ipvsadm web03:10 ...

  2. keepalived健康检查方式【转】

    keepalived具有很强大.灵活的后端检测方式,其具有HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK 几种健康检测方式 ,在分别介绍各种检测方式之 ...

  3. 9-lvs-lvs集群-及keepalived健康检查

    注意: 配置前需要将上一篇的配置都清除掉 ifconfig eth1: down service ipvsadm restart nginx作为请求分发服务器时, 有健康检查机制, 挂了的服务器不会在 ...

  4. keepalived健康检查方式

    keepalived对后端realserver的健康检查方式主要有以下几种: TCP_CHECK:工作在第4层,keepalived向后端服务器发起一个tcp连接请求,如果后端服务器没有响应或超时,那 ...

  5. keepalived健康检查及双主MySQL健康检查脚本

    一.http检查 HTTP_GET:工作在第5层,向指定的URL执行http请求,将得到的结果用md5加密并与指定的md5值比较看是否匹配,不匹配则从服务器池中移除:此外还可以指定http返回码来判断 ...

  6. keepalive的工作原理和如何做到健康检查

    keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议. 虚拟路由冗余协议,可以认为是实现路由器高可用的 ...

  7. CentOS7.4 Keepalived+LVS 负载均衡 后台节点健康检查

    主机信息 VIP 10.10.10.55 LVS01 10.10.10.59 Web01 10.10.10.60 Web02 10.10.10.61 一.apache简单配置 1.(10.10.10. ...

  8. lvs健康检查脚本第三版

    如下是学习完马哥视频lvs后改写的健康检查脚本第三版.利用工作之余三四个小时时间才把整个逻辑搞清楚,有时候自己都有点蒙圈,尤其是在写到while循环的时候.总的来说非常感谢马哥的慷慨解囊!脚本原稿及思 ...

  9. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

随机推荐

  1. pacemaker和keepalived的区别

    1.pacemaker Pacemaker 是一款开源的高可用资源管理软件,适合大集群或者小集群. Pacemaker 由Novell支持,SLES HAE就是用Pacemaker来管理集群,并且Pa ...

  2. Affy包 estrogen包

    下载安装 if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocMana ...

  3. udev只能修改Linux 网口名称,无法修改/dev目录下的设备名称

    NAME The name to use for a network interface. The name of a device node cannot be changed by udev, o ...

  4. Vue.js之入门

    1.What is Vue.js? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架,通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 2.引入 ...

  5. 【医学】三分钟看懂乳腺BI-RADS分级

    “BI-RADS”是指美国放射学会的乳腺影像报告和数据系统(Breast Imaging Reporting and Data System)的缩写.BI-RADS分级法将乳腺病变分为0-6级,用来评 ...

  6. 停止IIS服务

    1 第一步 停止 World Wide Web Publishing Service     这个是W3C服务 2 第二部 停止 IIS Admin Service  这个IIS元数据管理服务

  7. ASP.NET-------gridview 进行编辑的时候,给出提示

    在使用gridview 控件的时候,控制修改人的操作行为,并给出合理的提示, 比如 在执行编辑操作的时候  不允许姓名为空,并显示出提示,姓名不可以为空 操作: 前台页面,对一些字段的解释 一定要注意 ...

  8. tomcat宕机自动重启脚本

    #!/bin/bash# 获取tomcat进程ID /usr/share/tomcatTomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v ...

  9. [转] service worker初探:超级拦截器与预缓存

    在2014年,W3C公布了service worker的草案,service worker提供了很多新的能力,使得web app拥有与native app相同的离线体验.消息推送体验. service ...

  10. lightGBM gpu环境配置

    推荐先看一手官方的Installation Guide.我用的是ubuntu 16.04,一些要求如下图: 主要是OpenCL以及libboost两个环境的要求. (1) OpenCL的安装.我这里之 ...