一、环境说明 (keepalived安装包在页尾,下载即可)
操作系统内核版本:CentOS 6.5
Keepalived软件版本: keepalived-1.2.13.tar.gz
二、环境配置
主Keepalived服务器IP地址 192.168.10.10
备Keepalived服务器IP地址 192.168.10.30
Keepalived虚拟IP地址 192.168.10.20
三、安装及配置
首先可以根据我的第一篇文章{负载均衡-反向代理}先搭建基本的服务
在主从服务器上都安装支持包
[root@localhost ~]# yum -y install kernel-devel openssl-devel popt-devel ipvsadm
在主从服务器上都把keepalived上传至/root/目录
[root@localhost ~]#tar zxf keepalived-1.2.13.tar.gz
[root@localhost ~]# cd keepalived-1.2.13
[root@localhost keepalived-1.2.13]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
[root@localhost keepalived-1.2.13]# make
[root@localhost keepalived-1.2.13]# make install
[root@localhost keepalived-1.2.13]# chkconfig --add keepalived
[root@localhost keepalived-1.2.13]# chkconfig keepalived on
四、主服务器配置
[root@localhost ~]#cd /etc/keepalived/
[root@localhost keepalived]#cp keepalived.conf keepalived.conf.backup #备份一份以防出错
[root@localhost keepalived]#vim keepalived.conf
配置内容如下:
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL_R1 #本服务器名称
}
vrrp_instance VI_1 { #定义VRRP热备实例
state MASTER #热备状态,MASTER表示主服务器
interface eth0 #承载VIP地址的物理接口
virtual_router_id 1 #虚拟路由ID号,每个热备组保持一致
priority 100 #优先级,数值越大优先级越高
advert_int 1 #通告间隔秒数
authentication { #认证信息,每个热备组保持一致
auth_type PASS #认证类型
auth_pass 123456 #密码字串
}
virtual_ipaddress { #指定VIP漂移地址,可以写多个
192.168.10.20 }
}
#其他的代码占时先全部删除!!!
[root@localhost keepalived]#service keepalived restart
[root@localhost keepalived]#ip addr show dev eth0 查看我们的VIP地址 里面肯定会有一条192.168.10.20的IP地址
五、从服务器配置
[root@localhost ~]#cd /etc/keepalived/
[root@localhost keepalived]#cp keepalived.conf keepalived.conf.backup #也备份一个以防出错
[root@localhost keepalived]#vim keepalived.conf
#配置内容如下:
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL_R2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 1
priority 10
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.10.20 }
}
其他的内容也全部删除!!!
[root@localhost keepalived]#service keepalived restart
[root@localhost keepalived]#ip addr show dev eth0
现在从服务查看的时候只会有自己的接口IP,因为主服务器还在,所以VIP地址肯定还在主服务器上,当主服务器出现故障的时候,备份服务器就起作用了,立马接替VIP地址继续工作。
六、测试
这样设置完成后,我们可以先做一个简单的测试,我们在主服务器上直接把keepalived服务关掉,然后查看从服务器上是否有VIP地址,有则成功。我们再把主服务器上的keepalived服务启动起来,查看VIP地址是否又漂移到了主服务器上(自己测试)
七、主服务器配置WEB池
[root@localhost keepalived]#vim keepalived.conf
在原有的命令配置下继续添加以下内容:
virtual_server 192.168.10.20 80 { #虚拟服务器VIP地址和端口
delay_loop 6 #健康检查的间隔时间(秒)
lb_algo rr #轮询调度算法
lb_kind DR #直接路由群集工作模式
persistence_timeout 50 #连接保持时间(秒)不启动在前面加(!)即可
protocol TCP #采用TCP协议
real_server 192.168.10.10 80 { #第一个WEB节点地址和端口
weight 1 #节点权重
TCP_CHECK { #健康检查方式
connect_port 80 #检查的目录端口
connect_timeout 3 #连接超时(秒)
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔(秒)
}
}
real_server 192.168.10.10 8080 { #第二个web节点的地址、端口和部分信息
weight 1
TCP_CHECK {
connect_port 8080
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@localhost keepalived]#service keepalived restart
八、从服务器配置WEB池
[root@localhost keepalived]#vim keepalived.conf
#在原有的命令下继续添加以下内容
virtual_server 192.168.10.20 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.10.30 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.10.30 8080 {
weight 1
TCP_CHECK {
connect_port 8080
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@localhost keepalived]#service keepalived restart
九、主服务上编写脚本,实现全自动化主从故障切换
[root@localhost ~]#vim /opt/keepalived.sh
#!/bin/bash
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];
then
/etc/init.d/keepalived stop
fi
#脚本意思是检测Nginx服务,如果等于0 那么就直接把keepalived停止掉
[root@localhost ~]#chmod +x /opt/keepalived.sh
十、把脚本应用到主服务器的keepalived配置文件里
[root@localhost keepalived]#vim keepalived.conf
.............
global_defs {
router_id LVS_DEVEL_R1
}
vrrp_script chk_port { #应用脚本
script "/opt/keepalived.sh"
interval 2
weight 2
}
.............
authentication {
auth_type PASS
auth_pass 123456
}
track_script { #跟踪脚本
chk_port
}
.............
.............
十一、最后的验证
我们在主从的web网页里编写不同的网页内容,我们可以直接用VIP地址去访问web,当然先访问到的web网页肯定是主服务器的,优先级高决定先访问谁。
现在我们为了做测试,我们现在就可以亲手把Nginx服务停止掉,然后查看结果,在客户机上刷新网页,我们就可以看到是从服务器提供的网页内容。当主服务器的Nginx服务启动起来了,我们还需要再启动一下keepalived服务 ,VIP地址就会回到主服务器上
分享到:
相关推荐
【标题】:Linux环境下基于Keepalived的MySQL双机热备实现详解 【描述】:在企业级系统中,数据库往往是性能瓶颈的关键所在。MySQL主从架构虽然能缓解这一问题,但在面临单一主库故障时,系统仍存在风险。本文将...
本篇将详细介绍如何通过Nginx 和 Keepalive 实现主从双机热备,并配置自动切换功能,以达到负载均衡及高可用集群的目的。 #### 一、环境搭建概述 根据提供的部分内容,我们可以看出整个部署过程分为以下几个主要...
为了实现MySQL主从复制的主备自动切换,本方案采用了一种典型的双机热备架构。在该架构中,两台服务器分别被配置为主服务器(Master)和从服务器(Slave)。当主服务器出现故障时,Keepalived会监测到这一变化,并...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf
内容概要:本文详细介绍了基于瞬时无功功率理论的三电平有源电力滤波器(APF)仿真研究。主要内容涵盖并联型APF的工作原理、三相三电平NPC结构、谐波检测方法(ipiq)、双闭环控制策略(电压外环+电流内环PI控制)以及SVPWM矢量调制技术。仿真结果显示,在APF投入前后,电网电流THD从21.9%降至3.77%,显著提高了电能质量。 适用人群:从事电力系统研究、电力电子技术开发的专业人士,尤其是对有源电力滤波器及其仿真感兴趣的工程师和技术人员。 使用场景及目标:适用于需要解决电力系统中谐波污染和无功补偿问题的研究项目。目标是通过仿真验证APF的有效性和可行性,优化电力系统的电能质量。 其他说明:文中提到的仿真模型涉及多个关键模块,如三相交流电压模块、非线性负载、信号采集模块、LC滤波器模块等,这些模块的设计和协同工作对于实现良好的谐波抑制和无功补偿至关重要。