Web+Keepalived的高可用

Web+Keepalived–HA

在LVS+keepalived中,我们通过检测网卡的存活状态来判断KVS是否可用,也就是说,keepalived认为,网卡活着,则LVS活着(能够正常工作),因为LVS是集成在Linux的内核中的,只有Linux系统崩了,LVS才会挂掉,同时网卡也就不能正常使用了,所以说,LVS中探测网卡是完全没有问题的。但是在Web服务的高可用中则不然,因为Web服务远远没有Linux系统稳定,所以检测网卡的话是不能进行Web服务的存活状态进行有效探测的,因此在生产中,往往在eepalived中使用脚本来探测Web服务是否还活着,如果挂掉,就会启动备用节点。

环境准备

这里使用的是Apache,用的是抢占模式

192.168.4.116(master)

192.168.4.115(backup)

安装Apache

两台安装完全一样

yum install -y httpd
service httpd start
echo "192.168.4.115" > /var/www.html/index.html #方便区分两台机器

安装Keepalived

master节点和backup节点一样

1.安装依赖

yum -y install kernel-devel openssl-devel popt-devel gcc*

2.安装keepalived

tar xf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-642.el6.x86_64/
make && make install

修改配置文件

master节点

vim /etc/keepalived/keepalived.conf
global_defs {
   router_id LVS_1
}
vrrp_script check_server {
       script "/usr/local/script/http_check.sh"  # 监测脚本
       interval 2  # 每2s监测一次
       weight -20  # 监测失败,则相应的vrrp_instance的优先级会减少20个点
       fall 2  # 脚本检测失败2次才算检测失败
       rise 2  # 脚本检测成功2次才算检测成功
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.4.55
    }
    track_script {  # 添加在运行这个区域的时候需要运行的脚本
    check_server  # vrrp_script配置的脚本 
    }
    notify_master /usr/local/script/notify_master.sh  # 当成为master的时候实现的脚本
    notify_stop /usr/local/script/notify_stop.sh  # 当停止VRRP时执行的脚本
}
#下边的都删除,因为那个是LVS探测真实服务器的存活状态的区域,我们这里本身就是真实服务器
脚本
http_check.sh
vim /usr/local/script/http_check.sh 
#!/bin/bash
URL="http://192.168.4.116/index.html"
HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${URL}"`
if [ $HTTP_CODE != 200 ]
    then
        /etc/init.d/keepalived stop
fi
notify_master.sh
vim /usr/local/script/notify_master.sh
#!/bin/bash
echo "change mstart" >> /root/change.master.log
echo `date` >> /root/change.master.log
notify_stop.sh
vim /usr/local/script/notify_stop.sh
#!/bin/bash
echo "关闭keepalived"  >> /root/stop.log
echo `date` >> /root/stop.log

backup节点

vim /etc/keepalived/keepalived.conf
global_defs {
   router_id LVS_2  # id号需要修改
}
vrrp_script check_server {
   script "/usr/local/script/http_check.sh"  # 监测脚本
   interval 2  # 每2s监测一次
   weight -20  # 监测失败,则相应的vrrp_instance的优先级会减少20个点
   fall 2  # 脚本检测失败2次才算检测失败
   rise 2  # 脚本检测成功2次才算检测成功
}
vrrp_instance VI_1 {
    state BACKUP  # 状态为BACKUP
    interface eth0  # 心跳检测的网卡
    virtual_router_id 51 
    priority 90  # 优先级
    advert_int 1  # 检测间隔
    authentication {
    auth_type PASS
    auth_pass 1111
    }
    virtual_ipaddress {
    192.168.4.55  # VIP
    }
 track_script {  # 添加在运行这个区域的时候需要运行的脚本
    check_server  # vrrp_script配置的脚本 
    }
    notify_master /usr/local/script/notify_master.sh  # 当成为master的时候实现的脚本
    notify_stop /usr/local/script/notify_stop.sh  # 当停止VRRP时执行的脚本
    notify_backup xxx  # 当成为backup时执行的脚本
	notify_fault xxx  # 发生故障时执行的脚本
	notify xxx  # 任何时候都会执行的脚本,这个脚本会在notify_*脚本后执行
    #这里的脚本根据自己的实际情况写即可
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值