heartbeat做nginx高可用集群

一、理论

·HA高可用,又被叫做双机热备。

·高可用原理:两台机器A和B,正常是A提供服务,B闲置,当A宕机或服务宕掉,切换到B继续提供服务,使用心跳进行通信和选举

·heartbeat原理:心跳检测和资源接管两个部分。集群中的主机互相发送报文,告诉对方自己当前的状态,如果在一定时间内未收到对方报文,认定对发死亡

·常用的高可用软件:heartbeat、keepalived

·脑裂:双方无法进行心跳信息的传递,导致无法获取其他节点状态信息

·heartbeat  适合做服务高可用

·keepalived 适合做lvs高可用

·两种检测的方式:互相发送报文,第二种ping网关或者别的第三方

·心跳线的作用(内网IP):互相发送报文

·实验:AB两台虚拟机上都装nginx和heartbeat,AB两台虚拟机都把heartbeat起来,但不启动nginx。

这时主节点上的nginx会自动启动,并获得VIP。

正常情况下是A提供服务,VIP在A上,如果A上的nginx出现故障停止工作,VIP会漂移到B上,B上的nginx也会自动启动,以此达到高可用效果

二、搭建

重点:时间同步

各个集群节点能互相解析

(1)三个配置文件:

秘钥文件:authkeys

heartbeat服务配置文件:ha.cf

资源管理配置文件:haresouce

(2)准备环境

1.两台虚拟机都装heartbeat和nginx

2. hostname分别为:node1 node2

3.两台机器都添加两个内网地址:192.168.100.20,192.168.100.30(用来模拟心跳线)
          4. 关闭防火墙  service iptables stop
          5. 关闭SElinux  setenforce 0
          6.添加解析 vim/etc/hosts          #增加内容如下:

192.168.1.104  node1                         #外网地址和主机名
            192.168.1.106  node2                         #外网地址和主机名

7. 两个机器都安装heartbeat    libnet  nginx
             yum  install -y heartbeat*    libnet  nginx  
             yum  install -y heartbeat*    libnet  nginx

  (3)主节点:

   1.cd /usr/share/doc/heartbeat-3.0.4/
   2.cp  authkeys  ha.cf haresources   /etc/ha.d/        #拷贝模版配置文件 
   3.cd /etc/ha.d                                           
   4.vim  authkeys                   #设置互相检测心跳时的加密方式
   5.vim haresources                 #设置主节点,备用上边不用修改                    
   node1  192.168.1.109/24/eth0:0 nginx   #主节点的主机名/外网IP/掩码/虚拟接口/高可用服务
   6.vim  ha.cf                                    
    debugfile /var/log/ha-debug            #记录调试信息
    ogfile /var/log/ha-log                 #记录日志信息
    logfacility     local0                 #日志级别
    keepalive 2                            #发送心跳报文的间隔          
    deadtime 30                            #等待30秒,如果没收到对方心跳,视为宕机  
    warntime 10                            #10秒收不到,记录日志 
    initdead 60                            #网络启动时间     
    udpport 694                            #设置广播通信使用的端口
    ucast eth1 192.168.100.20        #第一种:广播的形式检测对方心跳线信息(对方,内网IP)
    auto_failback on                 #主节点恢复后,是否接管从节点的服务
    respawn hacluster /usr/lib64/heartbeat/ipfail   #配合ping语句指定的ping node来检测网络的连通性
    node    zhaijunming              #主节点
    node    zhaijunming1             #从节点
    ping 192.168.1.254               #第二种检测方式,ping 第三方稳定的节点                 #两种检测方式:  1.互相发送心跳报文   2.ping第三方稳定的节点

(4)备节点

1.拷贝配置文件到 从服务器上

scp ha.cf  haresources authkeys zhaijunming1:/etc/ha.d/   #把配置文件拷贝到从上

2.备节点修改/etc/ha.cf        vim  /etc/ha.d/ha.cf           # 只需要更改一个地方,修改为对方的心跳线地址
        ”ucast eth1 192.168.100.20 “改为   ”ucast eth1 192.168.100.30“

三、测试

主:1.启动heartbeat:等待一分钟左右 ,执行ifconfig -a 查看是否有VIP,然后nginx服务是否自动起来了

备:2.启动heartbeat,不能有VIP,nginx也不能自动启动

停止主节点上的httpd,看是否vip转到备用节点,备节点httpd服务是否启动

时间: 2024-10-10 16:06:45

heartbeat做nginx高可用集群的相关文章

Nginx高可用集群实战

一.简介  上一篇博文介绍了keepalived的高可用集群,其实使用nginx做前端代理,负载均衡照样可以实现双主或主备模式的高可用集群比起keepalived基于lvs的dr配置更为简单易学,下面是本人所理解的nginx高可用集群.此实验拓扑图类似keepalived拓扑,把图中keepalived字样换成nginx即可,我就不画了,有意者可重画. 实验拓扑图:       二.nginx主备模式高可用     配置nginx的upstream模块,让其反代到后端主机,后端主机配置和keep

heartbeat及共享文件高可用集群

准备两台虚拟机,IP地址为192.168.1.4和192.168.1.3 把节点时间同步,分别在两台虚拟机上设置时间同步: crontab -e  打开后编辑,使每3分钟同步一次:指向可靠的网关: */3 * * * * /usr/sbin/ntpdate 192.168.1.1 &> /dev/null 节点间需要通过主机名互相通信,必须解析主机至IP地址,通信中使用的名字与节点名字必须保持一致 vim /etc/hosts                192.168.1.4    hs

Keepalived+LVS+nginx搭建nginx高可用集群

nginx是一款非常优秀的反向代理工具,支持请求分发,负载均衡,以及缓存等等非常实用的功能.在请求处理上,nginx采用的是epoll模型,这是一种基于事件监听的模型,因而其具备非常高效的请求处理效率,单机并发能力能够达到上百万.nginx接收到的请求可以通过负载均衡策略分发到其下一级的应用服务器,这些服务器一般是以集群方式部署的,因而在性能不足的情况下,应用服务器可以通过加机器的方式扩展流量.此时,对于一些特大型的网站,性能的瓶颈就来自于nginx了,因为单机的nginx的并发能力是有上限的,

keepalived + nginx高可用集群

1.安装环境与版本: 3个CentOS 7 虚拟机 3个Nginx实例 centos-100 centos-101 centos-102 192.168.200.100 192.168.200.101 192.168.200.102 设置keepalived虚拟ip为192.168.200.99 2.改nginx首页 $ cd /usr/java/nginx/html/ $ vi index.html 分别在首页上加上各主机ip,能在网页上访问,以便于后面测试ip 3.安装keepalived

利用heartbeat实现高可用集群

heartbeat是一个可以提供messaging  Layer层的软件,他有三个版本(v1.v2.v3),本实验使用heartbeat v2版本,由于v2版本自带了2个资源管理器heartbeat和crm,因此,本文会分别实现2个不同的资源管理器来实现高可用集群. 一.利用heartbeat自带的资源管理器heartbeat来实现高可用集群 1.实验环境 本次实验作者是在RHEL 5.8系统上实现的,并且是在vm虚拟机上实现的.每一个虚拟机上面只需要一个网卡即可,网卡模式可以是桥接也可以是仅主

Heatbeat高可用集群

网络规划 主机名 接口 Ip 用途 MASTER node1.xmfb.com Eth0 172.16.4.100 提供高可用服务节点 BACKUP node2.xmfb.com Eth0 172.16.4.101 备用节点,随时准备接替主节点 NFS NFS Eth0 172.16.4.200 提供共享存储 VIP Eth0:0 172.16.4.1 虚拟ip 配置中所有系统均使用centos6.6 64位 配置HA集群的前提: (1)节点间时间必须同步:使用ntp协议实现: [[email 

Puppet自动化高可用集群部署

前言:随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台puppetmaster响应很慢,压力大,解析缓慢,有什么优化的方案吗?可以使用Puppetmaster配置多端口,结合Nginx web代理,这样puppetmaster承受能力至少可以提升10倍以上. 一.安装配置mongrel服务: 要使用puppet多端口配置,需要指定mongrel类型,默认没有安装,需要安装.在Puppetmaster服务器端执行如下命令(前提是已经安装了对应版本的

keepalived实现高可用集群方案

一.keepalived和VRRP协议介绍 keepalived是基于vrrp协议实现的一个高可用集群解决方案,可以利用keepalived来解决单点故障问题,使用keepalived实现的高可用集群方案中,一般有两台服务器,一个是MASTER(主服务器),另一个是BACKUP(备用服务器),这个集群中对外提供一个虚拟IP,MASTER服务器会定时发送特定信息给BACKUP服务器,当BACKUP服务器接收不到MASTER发送的消息时,BACKUP服务器会接管虚拟IP,继续提供服务. VRRP协议

CentOS linux 高可用集群之heartbeat

CentOS linux 高可用集群之heartbeat Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能. Heartbeat是Linux-HA工程的一个组件,自1999年开始到现在,发布了众多版本,是目前开源Linux-HA项目最成功的一个例子,在行业内得到了广泛的应用. 随着Linux在关键行业应用的逐渐增多,它必将提供一些