双机热备heartbeat和keepalived
一、heartbeat安装配置
用heartbet搭建nginx服务高可用
环境:两台Centos6.5_x64系统下的高可用,每一台都需要两块网卡。
两台机器上都需要安装 nginx
主服务器 master
ip(可以访问外网)172.18.9.89 ip(用于心跳检测):192.168.8.200
从服务器 slave
ip(可以访问外网)172.18.9.99 ip(用于心跳检测):192.168.8.100
分别在两个机器上的hosts文件中加入两行:master 172.18.9.89
slave 172.18.9.99
1.安装heartbeat(同时也需要安装libnet,因为需要libnet的支持
主、从服务器上都运行 yum install -y heartbeat libnet
2.复制配置文件
cd /usr/share/doc/heartbeat-3.04/
cp authkeys ha.cf haresources /etc/ha.d/
3.配置authkeys(该文件是权限级别的控制)
配置如下: auth3
3 ma5 Hello
设置authkeys的读写权限 chmod 600 authkeys
4.配置haresources
只需要在该配置文件中加入一行即可:
master 172.18.9.250/24/eth0:0 nginx
//意思是使用虚拟250这个ip做代理nginx服务,外部访问nginx服务只能访问到172.18.9.250这个ip;
5.配置ha.cf(这个配置文件配置的最多)
配置如下: debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast eth0 192.168.8.100(用于心跳检测)
auto failback on
node master
node slave
ping 172.18.2.2 (检测网络是否有问题,最好找一个稳定的ip)
respawn hacluster /usr/lib64/heartbeat/ipfail(若是32位系统需要把lib64改成lib
6.拷贝
cd /etc/ha.d
scp authkeys ha.cf
haresources slave:/etc/ha.d/
7.修改从服务器上的配置文件
vim /etc/ha.d/ha.cf //从服务上只需要修改此处一个地方即可
把ucast eth0 192.168.8.100 改为 ucast eth0 192.168.8.200
8.启动服务
先主后从 service heartbeat start
服务的日志是在/var/log/ha-log
9.测试
把主服务器上的网卡禁用或者heartbeat服务关闭
查看172.18.9.250是否在从服务器上。
二、keepalived安装和配置