keepalived实现nginx反向代理高可用

本文主要介绍下keepalived工作原理及在nginx方向代理中高可用的应用配置。


工作原理

keepalived模块化设计,不同模块负责不同的功能,下面是keepalived的组件:

core check vrrp libipfwc libipvs-2.4 libipvs-2.6

core:是keepalived的核心,复杂主进程的启动和维护,全局配置文件的加载解析等

check:负责healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析

vrrpVRRPD子进程,VRRPD子进程就是来实现VRRP协议的

libipfwciptables(ipchains)库,配置LVS会用到

libipvs*:配置LVS会用到

wKioL1XzkmHwCq06AAHYbSKFGXk804.jpg

keepalived启动后会有三个进程

父进程:内存管理,子进程管理等等

子进程:VRRP子进程

子进程:healthchecker子进程

有图可知,两个子进程都被系统WatchDog看管,两个子进程各自负责自己的事,healthchecker子进程负责检查各自服务器的健康程度,例如HTTPLVS等等,如果healthchecker子进程检查到MASTER上服务不可用了,就会通知本机上的VRRP子进程,让他删除通告,并且去掉虚拟IP,转换为BACKUP状态

 

keepalived实现nginx反向代理高可用

 

一、拓扑图

wKiom1XzkETi6WX_AAFAfqfxxsI356.jpg


二、系统环境

Centos6.6_x86_64

三、安装配置

1.软件安装

nginxtomcat的安装这里不做说明,本次实验nginxtomcat已经正常部署完成并且服务均已启动

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 {

     [email protected]

     [email protected]

     [email protected]

   }

   notification_email_from [email protected]

   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已经加上

wKioL1Xzkoujo-PgAAGAdf-Y61s429.jpg

 

4.测试

 

wKioL1XzkpnA4LX1AAEyjVHij4w702.jpg

 

 

通过vip能正常访问后端tomcat服务

停止主节点keepalived或者nginx服务,vip正常漂移到备节点上


你可能感兴趣的:(keepalived实现nginx反向代理高可用)