Heartbeat + Nginx 实现高可用
前言
生产环境中,除开应用自身可以设置高可用(如Redis)和使用keepalived软件配置高可用,还可以使用Heartbeat来配置高可用集群,Heartbeat 是一款开源提供高可用(Highly-Available)服务的软件,通过 heartbeat 可以将资源(IP及程序服务等资源)从一台已经故障的计算机快速转移到另一台正常运转的机器上继续提供服务,一般称之为高可用服务。在实际生产应用场景中,heartbeat 的功能和 keepalived 有很多相同之处,但在生产中,对应实际的业务应用也是有区别的,例如: keepalived 主要是控制IP的漂移,配置、应用简单,而 heartbeat 则是通过一组脚本控制IP漂移,对资源服务的控制,配置等操作。
基础理论概述
heartbeat 主备模式
通过修改 heartbeat 软件的配置文件可以指定哪一台 Heartbeat 服务器作为主服务器,则另一台将自动成为热备服务器。然后在热备服务器上配置 Heartbeat 守护程序来监听来自主服务器的心跳消息。如果热备服务器在指定时间内未监听到来自主服务器的心跳,就会启动故障转移程序,并取得主服务器上的相关资源服务的所有权,接替主服务器继续不间断的提供服务,从而达到资源及服务高可用性的目的。
heartbeat 主主模式
两台服务器互为主备,这时它们之间会相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的心跳报文,那么,一方就会认为对方失效或者宕机了,这时每个运行正常的主机就会启动自身的资源接管模块来接管运行在对方主机上的资源或者服务,继续为用户提供服务。一般情况下,可以较好的实现一台主机故障后,企业业务仍能够不间断的持续运行。
原理详情请见大佬的Heartbeat 简介和原理,如有侵权,请联系本人删除。
实验步骤
实验目的:掌握搭建Heartbeat+Nginx的高可用集群
实验准备:两台C6标准系统虚拟机(防火墙与selinux已关闭)
实验规划:
服务器角色 | 简称 | IP |
---|---|---|
Nginx1 | N1 | 192.168.10.10 |
Nginx2 | N2 | 192.168.10.10 |
一、配置Nginx服务
准备好实验所需软件包,解压编译安装Nginx。
yum -y install ope