keepalived+nginx实现双机热备(防止单点故障)

来源:互联网 发布:知乎 管理者 编辑:程序博客网 时间:2024/05/28 23:11

1、准备两台虚拟机

      192.168.91.11(主)192.168.91.12(从)

2、安装软件

     ipvsadm 

     keepalived

     nginx

3、关闭selinux和防火墙

4、配置keepalived.conf如下:

! Configuration File for keepalivedglobal_defs {}vrrp_script chk_nginx {    #必须放在track代码的上方,否则无效,测试了几次是这个情况    script "killall -0 nginx"    #用shell命令检查nginx服务是否存在    interval 1    #时间间隔为1秒检测一次    weight -15    #当nginx的进程不存在了,就把当前的权重-15}vrrp_instance VI_1 {    state MASTER    #主LVS是MASTER,从主机时此项要改为BACKUP,要大写    interface eno16777736    #LVS监控的网络接口    virtual_router_id 51    #同一实例下virtual_router_id必须相同,MASTRE/BACKUP 设置值要一样    priority 100    #定义优先级,数字越大,优先级越高,把此份Conf拷贝到另一台机器上时,设置的priority值要比MASTRE权重值低    advert_int 1    #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒    authentication {        auth_type PASS        auth_pass 123456        #验证类型和密码,有PASS和AH两种,一般用PASS,据说AH有问题,认证密码主备服务器之间一定要一致,否则出错    }    virtual_ipaddress {        192.168.91.20        #设置虚拟IP,可以有多个地址,每个地址占一行,不需掩码。注意:这个 ip 必须与我们在 lvs 客户端设定的vip相一致    }    track_script {        chk_nginx        #引用上面的vrrp_script定义的脚本名称    }    notify_master "/etc/keepalived/changemail.py master"    notify_backup "/etc/keepalived/changemail.py backup"    notify_fault "/etc/keepalived/changemail.py fault"    #指定当切换到主、备及故障状态时,执行的脚本}

5、测试 亲测可用

6、说明

    当MASTER存在时,所有的请求都发到MASTER上,MASTER宕机之后才发到BACKUP上,MASTER恢复正常之后,所有的请求继续发到MASTER上。


原创粉丝点击