原文链接:http://blog.sina.com.cn/s/blog_6dbc8a680100u1s7.html

一、环境说明


1、操作系统内核版本:2.6.9-78.ELsmp

   2Keepalived软件版本:keepalived-1.1.20.tar.gz


二、环境配置


1、主Keepalived服务器IP地址 192.168.111.223

2、备Keepalived服务器IP地址 192.168.111.100

3Keepalived虚拟IP地址 192.168.111.150


三、软件下载地址


http://www.keepalived.org/software/keepalived-1.1.20.tar.gz


四、安装流程


1、上传Keepalived/home/目录

2、解压Keepalived软件

[root@localhost home]# tar -zxvf keepalived-1.1.20.tar.gz

[root@localhost home]# cd keepalived-1.1.20

[root@localhost keepalived-1.1.20]# ln -s /usr/src/kernels/2.6.9-78.EL-i686/usr/src//linux

[root@localhost keepalived-1.1.20]# ./configure

3、提示

Linux下Keepalived <wbr>安装与配置

4、编译以及编译安装

[root@localhost keepalived-1.1.20]# make && make install

Linux下Keepalived <wbr>安装与配置

5、将types.h调用的部分注释掉即可解决4出现的问题

vi/usr/src/kernels/2.6.9-78.EL-i686/include/linux/types.h

158行操作如下

#endif

6、重新编译以及编译安装

[root@localhost keepalived-1.1.20]# make && make install

Linux下Keepalived <wbr>安装与配置

7修改配置文件路径

[root@localhostkeepalived-1.1.20]#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

[root@localhostkeepalived-1.1.20]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

[root@localhost keepalived-1.1.20]# mkdir /etc/keepalived

[root@localhostkeepalived-1.1.20]#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

[root@localhost keepalived-1.1.20]# cp /usr/local/sbin/keepalived /usr/sbin/

8、设置为服务,开机启动

[root@localhost keepalived-1.1.20]# vi /etc/rc.local

Linux下Keepalived <wbr>安装与配置




五、Keepalived配置


1、修改配置文件

[root@localhost keepalived-1.1.20]# vi /etc/keepalived/keepalived.conf

Linux下Keepalived <wbr>安装与配置

六、Keepalived配置


1、修改配置文件

Linux下Keepalived <wbr>安装与配置


七、启动服务

Linux下Keepalived <wbr>安装与配置

八、查看网卡信息

1、主Keepalived网卡信息

Linux下Keepalived <wbr>安装与配置


九、验证测试


1、在主服务器上新建一个网页,内容为 192.168.111.223

2、在备用服务器上新建一个网页,内容为 192.168.111.100

3、启动主备服务器的nginx服务和Keepalived服务

4、通过浏览数,输入虚拟IP地址 192.168.111.150

页面显示为 192.168.111.223

5、关闭主服务器的Keepalived服务,通过浏览器输入IP地址192.168.111.150

页面显示为 192.168.111.100

6、再次启动主服务器的Keepalived服务,通过浏览器输入IP地址192.168.111.150

页面显示为 192.168.111.223





-------------------------------------------------------------------

这样会有一个问题,只有当主服务器关机或者硬件故障或者才会使web故障迁移。所以必须加一个监控脚本,实现故障恢复。如下:


三、分别在主和辅服务器上建立nginx的监控脚本

Keepalived管理虚IP是通过组播和优先级实现的,优先级高的会拥有虚IP的管理权,所以要实现IP自动切换,只需要建立一个监控脚本,让keepalived进行调用,一

旦发现nginx出现故障就kill掉keepalived的进程,让其他keepalived管理此IP

vi /root/shell/nginx_check.sh

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`            

if [ $A -eq 0 ];then                                    

               /usr/local/nginx/sbin/nginx

               sleep 3

               if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then

                     killall keepalived

               fi

fi


注意给脚本添加执行权限:chmod+x /root/shell/nginx_check.sh

然后让该脚本一直在后台运行:
#nohup /etc/nginx_check.sh
或者将它添加成服务,让它开机自启动.

两台机器启动keepalived:service keepalived start

五、总结

此方案没有做负载均衡,只是做了一个故障自动切换的处理,适用于PV不是很高的环境(当然Nginx做好调优其负载能力也是很强的).