原文链接:http://blog.sina.com.cn/s/blog_6dbc8a680100u1s7.html
一、环境说明
1、操作系统内核版本:2.6.9-78.ELsmp
2、Keepalived软件版本:keepalived-1.1.20.tar.gz
二、环境配置
1、主Keepalived服务器IP地址 192.168.111.223
2、备Keepalived服务器IP地址 192.168.111.100
3、Keepalived虚拟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、提示
4、编译以及编译安装
[root@localhost keepalived-1.1.20]# make && make install
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
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
五、主Keepalived配置
1、修改配置文件
[root@localhost keepalived-1.1.20]# vi /etc/keepalived/keepalived.conf
六、备Keepalived配置
1、修改配置文件
七、启动服务
八、查看网卡信息
1、主Keepalived网卡信息
九、验证测试
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
两台机器启动keepalived:service keepalived start
五、总结
此方案没有做负载均衡,只是做了一个故障自动切换的处理,适用于PV不是很高的环境(当然Nginx做好调优其负载能力也是很强的).
转载于:https://blog.51cto.com/zlong37/1400500