Keepalived高可用解决方案
keepalived原理
keepalived搭建
一、安装
rpm -ivh keepalived-1.2.13-5.el6_6.i686.rpm
二、查看安装路径
rpm -ql keepalived
已经变成服务启动了
使用chkconfig
命令查看服务
三、重写keepalived.conf配置文件
首先,清空
! Configuration File for keepalived
#全局配置
global_defs {
notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个
XXX@XXX.com
}
notification_email_from XXX@XXX.com #指定发件人
#smtp_server XXX.smtp.com #指定smtp服务器地址
#smtp_connect_timeout 30 #指定smtp连接超时时间
router_id LVS_DEVEL #运行keepalived机器的一个标识
}
vrrp_instance VI_1 {
state MASTER #标示状态为MASTER 备份机为BACKUP
interface eth1 #设置实例绑定的网卡
virtual_router_id 51 #同一实例下virtual_router_id必须相同
priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { #设置认证
auth_type PASS #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress { #设置vip
192.168.200.100 #可以多个虚拟IP,换行即可
}
}
注意:
- 主备机的标示状态需要修改,主机位MASTER,备机为BACKUP
- 绑定的网卡需要修改,可以使用
ifconfig
命令查看 - 备机的权重需要修改,备机应该权重小于主机
- 心跳检测机制的秒数应该在1-3s之间
- 主备机的验证方式相同
- 设置同一个虚拟IP
四、启动tomcat和nginx
五、启动keepalived,查看主机的虚拟ip
注意:备机没有虚拟ip,如果有,则冲突
六、访问虚拟ip
此时如果主机挂掉,仍然可以访问该网站
配置完成!
keepalived高可用完美解决方案
如果主机硬件完好,系统完好,但只是nginx挂了,该怎么办?
写一个脚本,如果对应机器的nginx挂掉,该机器的keepalived自动挂掉。
一、创建脚本check_nginx.sh,并修改权限
二、修改keepalived.conf配置文件
#全局配置
global_defs {
notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个
XXX@XXX.com
}
notification_email_from XXX@XXX.com #指定发件人
#smtp_server XXX.smtp.com #指定smtp服务器地址
#smtp_connect_timeout 30 #指定smtp连接超时时间
router_id LVS_DEVEL #运行keepalived机器的一个标识
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh" ##监控脚本
interval 2 ##时间间隔,2秒
weight 2 ##权重
}
vrrp_instance VI_1 {
state MASTER #标示状态为MASTER 备份机为BACKUP
interface eth1 #设置实例绑定的网卡
virtual_router_id 51 #同一实例下virtual_router_id必须相同
priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99
advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { #设置认证
auth_type PASS #主从服务器验证方式
auth_pass 8888
}
track_script {
check_nginx #监控脚本
}
virtual_ipaddress { #设置vip
三、重启keepalived,关闭nginx服务
发现关闭了nginx,还是可以访问该ip地址