keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
二. 安装Keepalived(http://www.keepalived.org/download.html)
1、上传或下载 keepalived到 /usr/local/src 目录
2、解压安装
cd /usr/local/src
tar -zxvf keepalived-1.2.18.tar.gz
cd keepalived-1.2.18
./configure --prefix=/usr/local/keepalived
make && make install
3、将 keepalived 安装成 Linux 系统服务(因为没有使用 keepalived 的默认路径安装(默认是/usr/local),安装完成之后,需要做一些工作)
#复制默认配置文件到默认路径
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#复制 keepalived 服务脚本到默认的地址
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
4、设置 keepalived 服务开机启动
chkconfig keepalived on
5、修改 Keepalived 配置文件
MASTER 节点配置文件(192.168.1.11)
vi /etc/keepalived/keepalived.conf
global_defs {
##keepalived自带的邮件提醒需要开启sendmail服务。建议用独立的监控或第三方SMTP
##标识本节点的字条串,通常为 hostname
router_id 192.168.1.11
}
##keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance
的优先级。如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加。
如果脚本执行结果非0,并且weight配置的值小于 0,则优先级相应的减少。其他情况,
维持原本配置的优先级,即配置文件中priority对应的值。
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径
interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立,权重-20
}
## 定义虚拟路由,VI_1为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state MASTER ## 主节点为MASTER,对应的备份节点为BACKUP
interface eth1 ## 绑定虚拟IP的网络接口,与本机IP地址所在的网络接口相同
virtual_router_id 11 ## 虚拟路由的ID号,两个节点设置必须一样,建议用IP最后段
mcast_src_ip 192.168.1.11 ## 本机 IP 地址
priority 100 ## 节点优先级,值范围0-254,MASTER要比BACKUP高
nopreempt ## 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样,默认 1s
## 设置验证信息,两个节点必须一致
authentication {
auth_type PASS
auth_pass 1111
}
## 将 track_script 块加入 instance 配置块
track_script {
chk_nginx ## 执行 Nginx 监控的服务
}
## 虚拟 IP 池, 两个节点设置必须一样
virtual_ipaddress {
192.168.1.10 ## 虚拟 ip,可以定义多个
}
}
BACKUP 节点配置文件(192.168.1.12)
vi /etc/keepalived/keepalived.conf
global_defs {
router_id 192.168.1.12
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth1
virtual_router_id 11
mcast_src_ip 192.168.1.12
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.1.10
}
}
6、编写 Nginx 状态检测脚本 /etc/keepalived/nginx_check.sh
脚本:如果nginx停止运行,尝试启动,如果无法启动则杀死本机的keepalived进程,
keepalied将虚拟ip绑定到 BACKUP 机器上。内容如下:
vi /etc/keepalived/nginx_check.sh
!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
7、给脚本赋执行权限
chmod +x /etc/keepalived/nginx_check.sh
8、启动 Keepalived
service keepalived start
Starting keepalived: [ OK ]
9、Keepalived+Nginx的高可用测试
(1)关闭 192.168.1.11 中的 Nginx,Keepalived会将它重新启动
/usr/local/nginx/sbin/nginx -s stop
(2)关闭 192.168.1.11 中的 Keepalived,VIP 会切换到 192.168.1.12 中
service keepalived stop
(3)重新启动 192.168.1.11 中的 Keepalived,VIP 又会切回到 192.168.1.11 中来
service keepalived start
附Keepalived 服务管理命令:
停止:service keepalived stop
启动:service keepalived start
重启:service keepalived restart
查看状态:service keepalived status
相关推荐
本资源聚焦于“nginx+keepalived”这一高可用解决方案,旨在帮助学习者掌握如何利用这两个工具搭建稳定、可靠的Web服务架构。 **Nginx** Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款邮件代理服务器。...
基于Nginx和keepalived的高可用集群方案是指通过使用keepalived来实现Nginx的高可用性,以避免Nginx服务器宕机导致的服务不可用问题。该方案中,keepalived负责监控Nginx服务器的状态,并在Nginx服务器宕机时自动 ...
keepalived是一个基于VRRP协议的高可用性解决方案。它可以监控nginx服务器的状态,并在出现故障时自动切换到备份服务器。安装keepalived需要安装openssl-devel库,并下载keepalived的源代码包。然后,使用configure...
本课程由国内知名运维架构大师老男孩老师主讲,旨在帮助学员掌握Nginx负载均衡技术及Keepalived高可用方案。通过理论结合实践的方式,让学员能够快速上手,为企业级项目提供可靠的技术支持。无论是对于刚毕业的大学...
本教程将深入探讨如何利用Keepalived实现高可用性以及如何结合Nginx进行负载均衡。这两个技术是现代Web服务架构中的关键组件,它们为企业提供了稳定、高效的服务运行环境。 Keepalived是一个开源项目,主要用于提供...
Keepalived 是一种基于 Linux 的高可用性解决方案,可以提供可靠的负载均衡和故障转移功能。Keepalived 的主要功能包括: * Virtual IP 地址管理 * 服务器健康检查 * 负载均衡 * 故障转移 Nginx 简介 Nginx 是一...
在keepalived和heartbeat、corosync等集群组件中,keepalived使用VRRP协议方式,实现路由器的高可用性,而heartbeat和corosync则是基于主机或网络服务的高可用方式。因此,keepalived通常用于实现前端高可用,而...
通过以上步骤,我们可以构建一个基于Keepalived+Nginx的高可用Web负载均衡系统。此系统不仅能够有效分发流量,还能在出现故障时自动切换,从而大大提高了系统的稳定性和可靠性。此外,根据实际业务需求还可以进一步...
随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。
Keepalived 是一种高性能的服务器高可用或热备解决方案,可以防止服务器单点故障的发生,而 Nginx 是一个流行的 Web 服务器软件。通过 Keepalived 和 Nginx 的结合,可以实现高可用的 Web 负载均衡。 Keepalived 是...
这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将请求分发到多个后端的Tomcat应用服务器,从而提升系统的并发处理能力和稳定性。 首先,Nginx是一个开源的高性能...
- **整体架构**:采用Nginx作为反向代理,后端部署多个Tomcat实例,利用KeepAlived实现Nginx的主备切换,形成一套完整的高可用架构。 - **关键组件**: - **Nginx**:作为前端负载均衡器。 - **KeepAlived**:用于...
【keepalived高可用】是Linux环境中实现服务高可用性的一种解决方案,主要应用于网络和系统管理,特别是对于那些需要保持持续在线的关键服务,如Web服务器(Nginx、Apache)、数据库(MySQL)等。Keepalived的目标是...
Keepalived和Nginx是两个广泛使用的开源工具,它们在提供高可用性和负载均衡解决方案上发挥着重要作用。 首先,Keepalived是一个基于VRRP(虚拟路由冗余协议)的网络服务,用于实现Linux服务器间的高可用性。它监控...
Keepalived 是一个基于 VRRP 协议的高可用性解决方案,可以与 Nginx 服务器集成,以实现双机主备的高可用性架构。在本文中,我们将详细介绍使用 Keepalived 和 Nginx 实现双机主备的配置和原理。 一、架构概述 在...
Keepalived 是一个基于 VRRP(Virtual Router Redundancy Protocol)协议的高可用性解决方案,用于实现服务器集群的高可用性和负载均衡。下面是使用 Keepalived 部署高可用集群的详细知识点: 高可用 WEB 集群 在...
《keepalived+nginx+fastdfs集群安装手册》是一份详尽的IT技术文档,旨在指导用户构建基于这三个组件的高可用集群环境。这个集群方案主要用于实现网站服务的负载均衡和文件存储,确保服务的稳定性和数据的安全性。...
总的来说,"nginx+keepalived"方案通过结合Nginx的高性能和Keepalived的高可用性,构建了一个强大的、能够应对服务器故障的服务架构,是企业级应用的理想选择。在实际操作中,还需要根据业务需求调整配置,以达到...