zoukankan      html  css  js  c++  java
  • nginx+keepalived双机热备

    简介

      keepalived是一个类似于layer3, 4 & 5交换机制的软件,即可以使IP层、传输层、和应用层的服务冗余集群化。常应用于iP的虚拟化,能够实现mysql、nginx等服务的双机热备。

      Keepalived高可用服务对之间的故障切换转移,是通过 VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)来实现的。

      在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活看,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。

    实验软件版本:

      nginx:1.14.2

      keepalived:2.0.12

      两个软件的安装都是使用的源码包编译安装。

    系统结构

      192.168.50.80  nginx+keepalived

      192.168.50.81  negin+keepalived

      192.168.50.100  VIP

    配置文件

    80上的配置文件

     1 vim /opt/keepalived-2.0.12/etc/keepalived/keepalived.conf
     2 
     3 global_defs {
     4    router_id gh01
     5 }
     6 
     7 vrrp_instance VI_1 {
     8     state MASTER
     9     interface ens32
    10     virtual_router_id 100
    11     priority 100
    12     advert_int 1
    13     authentication {
    14         auth_type PASS
    15         auth_pass 1111
    16     }
    17     virtual_ipaddress {
    18         192.168.50.100/24
    19     }
    20 }

    81上的配置文件

     1 vim /opt/keepalived-2.0.12/etc/keepalived/keepalived.conf
     2 
     3 global_defs {
     4    router_id gh02
     5 }
     6 
     7 vrrp_instance VI_1 {
     8     state BACKUP
     9     interface ens32
    10     virtual_router_id 100
    11     priority 80
    12     advert_int 1
    13     authentication {
    14         auth_type PASS
    15         auth_pass 1111
    16     }
    17     virtual_ipaddress {
    18         192.168.50.100/24
    19     }
    20 }

    常用命令

    启动keepalived

    1 cd /opt/keepalived-2.0.12/sbin
    2 ./keepalived -f /opt/keepalived-2.0.12/etc/keepalived/keepalived.conf

    关闭keepalived

    1 pkill keepalived

    keepalived日志位置:/var/log/message

    验证

      同时启动80和81的nginx和keepalived,访问VIP192.168.50.100,访问到的是主服务器80上的nginx,此时VIP是虚拟注册在80的网卡上。

      将80上的keepalived关闭,VIP就被注册到了81上,再次访问VIP,就访问到了80的nginx。

      上述过程,VIP始终是可以访问的,只是后台切换了不同的nginx服务器。

    总结

      主服务器的keepalived关闭,虚拟IP就自动转移到备用服务器,由此我们可以写一个定时任务,不断检测应用(nginx、mysql等)是否正常,一旦检测到应用异常,关闭相对主机上的keepalived,下次用户的访问就会自动转移到备用服务器上。

  • 相关阅读:
    cocos2dx错误收集
    lua工具库penlight--06数据(二)
    lua工具库penlight--06数据(一)
    成功解决Developer Express和Janus WinForms Controls中控件的冲突
    NET全控件
    SOA相关资料
    构建高并发高可用的电商平台架构大纲
    让memcached和mysql更好的工作
    《特别推荐》10套精美的免费网站后台管理系统模板
    编写高质量代码:改善C#程序的157个建议
  • 原文地址:https://www.cnblogs.com/guanghe/p/10396930.html
Copyright © 2011-2022 走看看