本文主要介绍下keepalived工作原理及在nginx方向代理中高可用的应用配置。
工作原理
keepalived模块化设计,不同模块负责不同的功能,下面是keepalived的组件:
core check vrrp libipfwc libipvs-2.4 libipvs-2.6
core:是keepalived的核心,复杂主进程的启动和维护,全局配置文件的加载解析等
check:负责healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析
vrrp:VRRPD子进程,VRRPD子进程就是来实现VRRP协议的
libipfwc:iptables(ipchains)库,配置LVS会用到
libipvs*:配置LVS会用到
keepalived启动后会有三个进程
父进程:内存管理,子进程管理等等
子进程:VRRP子进程
子进程:healthchecker子进程
有图可知,两个子进程都被系统WatchDog看管,两个子进程各自负责自己的事,healthchecker子进程负责检查各自服务器的健康程度,例如HTTP,LVS等等,如果healthchecker子进程检查到MASTER上服务不可用了,就会通知本机上的VRRP子进程,让他删除通告,并且去掉虚拟IP,转换为BACKUP状态。
keepalived实现nginx反向代理高可用
一、拓扑图
二、系统环境
Centos6.6_x86_64
三、安装配置
1.软件安装
nginx及tomcat的安装这里不做说明,本次实验nginx及tomcat已经正常部署完成并且服务均已启动
keepalived安装
centos6.6已经收入keepalived-1.2.13版本所有可以采用yum方式安装
# yum installkeepalived
也可以下载源码包编译安装
# wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
这里采用yum方式安装
2.修改配置文件
修改keepalived配置文件/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 1
weight -2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.115.200
}
track_interface {
eth0
}
track_script {
chk_nginx
}
}
将以上两个文件复制到备节点上,并修改keepalived配置文件
修改状态为BACKUP
修改优先级为99
3.启动服务
# service keepalived start
在主节点上vip已经加上
4.测试
通过vip能正常访问后端tomcat服务
停止主节点keepalived或者nginx服务,vip正常漂移到备节点上
转载于:https://blog.51cto.com/hnr520/1694028