一 实验环境:

1 准备两台liunx主机,在各自的/etc/hosts/里面添加两行内容

192.168.141.131  master(主机名)

192.168.141.132  slave   (主机名)

每个服务器上面有两块网卡,其中eth1作为两台机器间的心跳线,eth0用作普通的通信用(我这里用一块网卡做实验)


2 把两台主机的iptables 和selinux关闭


3 安装软件 yum install heartbeat  -y 和yum install libnet -y


二 配置文件更改

(master)

1 cd /usr/share/doc/heartbeat-3.0.4/ 

cp authkeys ha.cf haresources /etc/ha.d/
进入到/etc/ha.d/这个目录下,编辑 authkeys

vim authkeys
auth 3  (用第三种方式认证)
#1 crc
#2 sha1 HI!
3 md5 Hello!  (加密)
更改权限

chmod 600 authkeys  (是当前用户可以执行)


编辑  haresources这个配置文件

添加一条这个master 192.168.141.110/24/eth0:0 nginx  (master 是指当前主机的主机名  这个ip地址是自定义的如果在实际环境中,这个一般是公网ip地址,后面可以添加别的服务,例如:mysql apache等)


3 编辑ha.cf配置文件

vi  ha.cf   //改为如下内容:

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility    local0
keepalive 2    #多长时间探测一次
deadtime 30   #  如果30秒ping不通了,就认为死掉了
warntime 10    #10秒ping不通会发出警告
initdead 60    #防止对方服务器重启预留一段时间
udpport 694   #心跳线通讯端口
ucast eth1 192.168.141.198(slave的主机地址)
auto_failback on
node    master     #你的主服务器的主机名(不能写错)
node    slave       #从的服务器的主机名
ping 192.168.141.1 #(仲裁地址,判断谁死谁活)
respawn hacluster /usr/lib64 /heartbeat/ipfail(检测网络的连通性)如果系统是32位则不用加这个64



(slave)

把三个文件拷贝到从上面
scp authkeys haresources ha.cf slave:/etc/ha.d/
只更改ha.cf这个配置文件
ucast eth0 192.168.141.131 (主服务器的ip)


三 安装nginx 

由于我们这里测试的是ngInx,所有两台机器需要安装nginx软件包,这里我们用yum 安装
yum install nginx 安装完之后,在两台机器上做些设置
主上:echo "master1111111111111111" > /usr/share/nginx/html/index.html
从上:echo "slave22222222222222222" > /usr/share/nginx/html/index.html
这样有助于我们看的明白


四 启动服务

/etc/init.d /heartbeat start 

先启动主的heartbeat服务,然后再启用从的,nginx服务不用手动启动,会跟随heartbeat 这个服务自己启动

最后,用ifconfig -a 或者ip add 查看,如果看到etho0:0 这个ip ,代表成功.


五 测试

在主上面加一条禁止ping的,iptables -A INPUT -p icmp -j DROP

看是否从的nginx服务会自动启动,如果可以自己启动,则代表成功,

注意:当主的heartbeat 服务停止时 ,它上面的nginx服务同样会停止,当主的heartbeat服务恢复启动时,从的hearbeat服务会自动停止,nginx服务也会停止。