百度SEO

百度SEO

Products

当前位置:首页 > 百度SEO >

如何在CentOS上配置Keepalived实现高可用性?

96SEO 2026-02-20 08:58 10


如何在CentOS上配置Keepalived实现高可用性?

xmlns="http://www.w3.org/2000/svg"

style="display:

高可用配置:从原理到实战的保姆级指南

关键词:Keepalived、高可用、VRRP、虚拟IP、CentOS、主备切换、健康检查

摘要:本文以“给小学生讲故事”的通俗语言,结合生活案例与技术细节,系统讲解

CentOS

IP)到实战操作(安装、配置、测试),再到常见问题与未来趋势,帮你彻底掌握“服务器永不宕机”的魔法。

/>

背景介绍

目的和范围

想象一下:你开了一家24小时营业的包子铺,只有1个厨师(主服务器)。

如果厨师突然生病(服务器宕机),包子铺就得关门(服务中断),顾客全跑了(业务损失)。

这时候,你需要1个“备用厨师”(备服务器),当主厨师生病时,备用厨师立刻顶上——这就是“高可用”(High

Availability,HA)的核心需求。

本文将教你用

Keepalived

系统上搭建这样的“主备厨师团队”,覆盖:

  • Keepalived

    核心原理(为什么能实现高可用?)

  • 具体配置步骤(如何让主备服务器“接力”?)
  • 实战测试与问题排查(如何验证切换成功?)

预期读者

  • 运维工程师:需要保障业务连续性的一线操作者
  • 开发工程师:想了解后端高可用方案的技术支持者
  • 技术爱好者:对“服务器永不宕机”好奇的探索者

文档结构概述

本文采用“从概念到实战”的递进结构:

  1. 先讲“为什么需要

    Keepalived”(背景)

  2. 再用生活案例解释核心概念(VRRP、虚拟

    等)

  3. 然后手把手教配置(安装→改配置→写检查脚本→测试)
  4. 最后总结常见问题与未来趋势

术语表

核心术语定义
  • 高可用(HA):系统在部分组件故障时仍能持续提供服务的能力(如包子铺主厨师生病,备用厨师顶上)。

  • VRRP:虚拟路由冗余协议(Virtual

    Router

    Protocol),Keepalived

    的核心协议,负责协调主备节点“谁来干活”。

  • 虚拟

    IP(VIP):对外暴露的“共享车牌”,主节点正常时由它使用,主节点故障时备节点接管(顾客只认车牌,不用管具体是哪辆车)。

  • 主节点(Master):当前负责处理业务的服务器(主厨师)。

  • 备节点(Backup):随时待命的备用服务器(备用厨师)。

相关概念解释
  • 健康检查:Keepalived

    定期“敲主节点的门”,确认它是否存活(如检查

    Nginx

    进程是否运行)。

  • 脑裂:主备节点因网络问题都认为对方故障,导致同时接管

    VIP(相当于两个厨师都认为对方生病了,同时开始做包子,顾客会混乱)。

/>

核心概念与联系:用“包子铺”故事讲明白

故事引入:包子铺的“永不关门”计划

你开了一家超火的包子铺,顾客每天排队买包子(用户访问服务器)。

但有个大问题:只有1个厨师(主服务器),如果他突然生病(服务器宕机),包子铺就得关门(服务中断)。

为了解决这个问题,你做了两个关键动作:

  1. 找了个备用厨师(备服务器):他平时在厨房待命,主厨师正常时他休息,主厨师生病时他立刻顶上。

  2. 挂了块共享招牌(虚拟

    IP):顾客只认这块招牌(VIP),不管当前是主厨师还是备用厨师在做饭(真实服务器

    IP)。

但问题来了:

  • 怎么让备用厨师知道主厨师生病了?(健康检查)
  • 怎么让顾客自动切换到备用厨师的招牌?(VRRP

    Keepalived

    要解决的问题——它相当于“包子铺的大管家”,负责监控主厨师状态,协调主备切换,管理共享招牌。

    核心概念解释(像给小学生讲故事)

    核心概念一:VRRP

    />VRRP

    就像包子铺的“裁判”,负责决定“当前该谁做饭”。

    它让主备服务器组成一个“虚拟路由组”,通过广播“我还活着”的消息(VRRP

    通告)来沟通。

    主服务器优先级高(比如

    100),备服务器优先级低(比如

    90)。

    正常时主服务器发通告,备服务器“听”到后就乖乖待命;如果主服务器不发通告了(超过一定时间),备服务器就认为主服务器生病了,自己“升级”为主服务器开始做饭。

    核心概念二:虚拟

    IP(VIP)——顾客的“共享招牌”

    />虚拟

    192.168.1.100)。

    主服务器正常时,VIP

    192.168.1.100

    IP);主服务器故障时,Keepalived

    VIP

    IP)。

    顾客完全感觉不到变化——他们只认招牌,不认具体是哪个厨师。

    核心概念三:健康检查——主服务器的“体检医生”

    Keepalived

    的“体检医生”,定期检查主服务器是否真的能做饭(比如检查

    Nginx

    挂了(但服务器本身没宕机),健康检查会“告诉”

    Keepalived:“主厨师虽然没生病,但他的锅坏了,做不了包子!”这时候

    Keepalived

    VIP。

    核心概念之间的关系(用包子铺比喻)

    • VRRP

      VIP

      是“共享招牌”。

      裁判决定当前由谁拿招牌——主厨师健康时他拿,主厨师生病时备用厨师拿。

    • 健康检查与

      VRRP

      的关系:健康检查是“体检医生”,给裁判提供主厨师的健康报告。

      如果医生说“主厨师生病了”,裁判就会让备用厨师接管招牌。

    • VIP

      VIP

      的服务器真的能提供服务(比如备用厨师接管招牌后,医生也会检查他的锅是否正常)。

    核心概念原理和架构的文本示意图

    用户请求

    IP(VIP:192.168.1.100)

    主服务器(IP:192.168.1.101,优先级100)

    Keepalived

    备服务器(IP:192.168.1.102,优先级90)

    Keepalived

    进程(监听主服务器通告,待命)

    健康检查(备用时也检查自身状态,确保随时能接管)

    Mermaid

    流程图:主备切换流程

    xmlns="http://www.w3.org/2000/svg"

    viewbox="0

    orient="auto">

    style="display:

    center;">

    343.6484375)">

    center;">

    正常时

style="display:

center;">

style="display:

center;">

style="display:

center;">

599.6484375)">

center;">

599.6484375)">

transform="translate(-60.1953125,

style="display:

center;">

否/主服务器宕机

style="display:

center;">

style="display:

center;">

style="display:

center;">

35)">

transform="translate(-43.38671875,

style="display:

center;">

用户访问VIP

209.32421875)">

transform="translate(-70.32421875,

style="display:

center;">

VIP绑定在谁的网卡?

407.6484375)">

center;">

主服务器处理请求

523.6484375)">

200px;">

主服务器Keepalived发送VRRP通告

675.6484375)">

200px;">

备服务器收到通告,保持备用

523.6484375)">

200px;">

健康检查:主服务器Nginx/端口正常?

675.6484375)">

center;">

继续服务

675.6484375)">

200px;">

主服务器Keepalived停止发送通告

791.6484375)">

center;">

备服务器超时未收到通告

895.6484375)">

transform="translate(-99.38671875,

style="display:

center;">

备服务器升级为主,绑定VIP

1011.6484375)">

200px;">

用户请求自动路由到备服务器

/>

核心算法原理

协议实现+健康检查模块

VRRP

协议通过以下步骤协调主备:

  1. 主备服务器加入同一个

    VRRP

    组,协商优先级(数值越高越优先)。

  2. 主服务器定期(默认

    秒)发送

    通告(包含自己的优先级、状态)。

  3. 备服务器监听通告:若收到,确认主服务器存活;若超时未收到(默认

    秒),认为主服务器故障,自己升级为主。

  4. 升级为主的服务器将

    VIP

    绑定到本地网卡,开始处理请求。

具体操作步骤(以

CentOS

服务器

  • 主服务器(Master):IP

    hostname

    master

  • 备服务器(Backup):IP

    hostname

    IP(VIP):192.168.1.100(需与主备服务器同网段)

步骤

2:安装

Keepalived

两台服务器都执行以下命令:

#

安装(CentOS

yum)yuminstall-y

keepalived#

查看版本(验证安装成功)keepalived

-v#

(09/24,2019)

步骤

3:配置

Keepalived(关键!)

主服务器(192.168.1.101)配置文件/etc/keepalived/keepalived.conf

global_defs

router_id

标识当前节点的名称(自定义,主备不同)

vrrp_script

"/etc/keepalived/check_nginx.sh"

健康检查脚本路径

检查失败时,当前节点优先级降低20(触发切换)

vrrp_instance

主节点状态(MASTER/Backup)

interface

绑定VIP的网卡(ifconfig查看)

virtual_router_id

VRRP组ID(主备必须相同,0-255)

priority

优先级(主>备,比如主100,备90)

advert_int

虚拟IP(可多个,每行一个)

192.168.1.100/24

}

备服务器(192.168.1.102)配置文件/etc/keepalived/keepalived.conf

global_defs

router_id

"/etc/keepalived/check_nginx.sh"

与主节点相同脚本

4:编写健康检查脚本(关键防误切!)

两台服务器都创建脚本/etc/keepalived/check_nginx.sh,并赋予执行权限:

#

创建脚本vi/etc/keepalived/check_nginx.sh#

输入以下内容(检查Nginx是否运行):#!/bin/bash#

检查Nginx进程是否存在if[$(ps-C

nginx

--no-headers|wc-l)-eq0];***n#

如果不存在,尝试重启Nginxsystemctl

restart

等待2秒后再次检查sleep2if[$(ps-C

nginx

--no-headers|wc-l)-eq0];***n#

重启失败,通知Keepalived切换(返回非0状态码)exit1fifiexit0#

赋予执行权限chmod+x

/etc/keepalived/check_nginx.sh

脚本逻辑解释

  • 第1次检查:如果

    Nginx

    进程不存在,尝试重启。

  • 第2次检查:如果重启后还是不存在(说明

    Nginx

    故障严重),返回exit

    会降低当前节点优先级(通过weight

    -20),触发主备切换。

步骤

5:启动

并设置开机自启

两台服务器都执行:

#

启动服务systemctl

设置开机自启systemctlenablekeepalived#

查看状态(主服务器应显示Master,备显示Backup)systemctl

status

/>

数学模型和公式:用简单公式理解切换逻辑

Keepalived

的主备切换本质是优先级竞争,可用以下公式描述:

当前有效优先级

=

健康检查权重当前有效优先级=初始优先级+健康检查权重

  • 初始优先级:主节点

    100,备节点

    90(配置文件中priority字段)。

  • 健康检查权重:检查成功时为

    0,检查失败时为

    -20)。

举例

  • 主节点正常时:有效优先级

    =

    故障(健康检查失败):有效优先级

    =

    />

    项目实战:代码实际案例和详细解释说明

    开发环境搭建

    • 硬件:2

      CentOS

      以上,模拟生产环境)。

    • 软件
      • CentOS

        7(内核

        默认版本可能较旧,可编译安装最新版)

      • Nginx(作为测试服务,验证切换后服务可用)

    源代码详细实现和代码解读

    前面的配置文件和健康检查脚本就是“源代码”,这里重点解读关键参数:

    vrrp_instance块核心参数
    参数名说明主节点值备节点值
    state节点初始状态(MASTER/BACKUP)MASTERBACKUP
    interface绑定

    VIP

    的网卡(ifconfig查看,如ens33

    ens33ens33
    virtual_router_idVRRP

    ID(主备必须相同,0-255)

    5151
    priority初始优先级(数值越高越优先)10090
    advert_int发送

    VRRP

    1)

    11
    au***ntication认证(防伪造通告,主备密码必须相同)auth_pass

    1111

    virtual_ipaddress虚拟

    IP(可多个,格式:IP/子网掩码)

    192.168.1.100/24192.168.1.100/24
    vrrp_script块核心参数
    参数名说明
    script健康检查脚本路径(需可执行)/etc/keepalived/check_nginx.sh
    interval检查间隔(秒)5
    weight检查失败时,当前节点优先级调整值(正数提升,负数降低)-20

    代码解读与分析

    • 为什么主备的virtual_router_id必须相同?

      />VRRP

      组通过virtual_router_id区分不同的高可用组。

      如果主备的

      不同,它们会认为属于不同的组,无法通信和切换。

    • 为什么健康检查脚本要重启

      Nginx

      短暂故障(如重启)触发误切换。

      比如,手动重启

      Nginx

      时,进程会短暂消失,脚本尝试重启后恢复,避免

      Keepalived

      误判为主节点故障。

    • advert_int可以调大吗?

      />可以,但需权衡“检测速度”和“网络开销”。

      调大(如

      秒)会减少网络广播,但故障检测时间会延长(切换延迟增加);调小(如

      0.5

      秒)检测更快,但可能增加网络负担。

    高可用方案广泛应用于以下场景:

    1.

    Web

    服务器高可用

  • 场景:企业官网、电商平台等

    Web

    Nginx/Apache,确保某台服务器宕机时服务不中断。

2.

数据库高可用(配合主从复制)

  • 场景:MySQL

    主从复制架构中,主数据库宕机时,Keepalived

    VIP

    到从数据库(需结合read_only配置,避免数据冲突)。

3.

负载均衡器高可用

  • 场景:LVS(Linux

    虚拟服务器)作为负载均衡器时,Keepalived

    LVS

    提供高可用,确保负载均衡器本身不成为单点故障。

/>

工具和资源推荐

官方资源

  • Keepalived

    官方文档:最权威的配置指南,包含所有参数说明。

  • VRRP

    RFC

    文档:想深入理解底层原理的必读材料。

社区与工具

  • 监控工具:Prome***us

    +

    状态(通过keepalived_exporter采集指标,如vrrp_instance_state)。

  • 日志分析journalctl

    keepalived查看

    运行日志(定位切换问题的关键)。

Kubernetes

开始与kube-vip等工具结合,为云原生应用提供基于

VRRP

LoadBalancer)。

趋势

Keepalived

是主备模式(1主N备),未来可能支持多主模式(多个节点同时提供服务,VIP

流量负载均衡),提升资源利用率。

挑战:脑裂问题

当主备节点因网络分区(如交换机故障)无法通信时,可能出现“脑裂”——主备都认为对方故障,同时绑定

VIP。

解决方案:

  • 心跳线:部署独立的心跳网络(如串口线),避免因业务网络故障导致误判。

  • 仲裁机制:引入第三方节点(如磁盘锁、云存储),主备节点切换时需向仲裁节点申请“锁”,确保只有一个节点能接管

    />

    总结:学到了什么?

    核心概念回顾

    • VRRP

      协议:主备的“裁判”,通过优先级和通告协调谁接管

      IP(VIP):用户访问的“共享招牌”,主备切换时自动迁移。

    • 健康检查:“体检医生”,确保接管

      VIP

      的节点真的能提供服务。

    概念关系回顾

    • VRRP

      决定“谁来拿招牌”,健康检查决定“拿招牌的人是否能干活”,VIP

      />

      思考题:动动小脑筋

      1. 如果主服务器的网络卡了(能发通告但延迟很高),备服务器会误切换吗?如何避免?(提示:调整advert_intmaster_down_interval

      2. 你能为

        MySQL

        高可用方案吗?需要注意哪些问题?(提示:主从复制延迟、从库read_only状态)

      3. 如果有

        台服务器(1主2备),如何配置

        Keepalived

        实现“主→备1→备2”的级联切换?

      />

      附录:常见问题与解答

      Q1:启动

      Keepalived

      没绑定到主服务器?

Q2:健康检查脚本执行了,但

Keepalived

没切换?

Q3:切换后,备服务器接管了

VIP,但用户请求还是到主服务器?

/>

扩展阅读

服务器高可用架构实战》(机械工业出版社)

  • Keepalived

    GitHub

    搭建高可用集群



  • SEO优化服务概述

    作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

    百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

    SEO优化核心服务

    网站技术SEO

    • 网站结构优化 - 提升网站爬虫可访问性
    • 页面速度优化 - 缩短加载时间,提高用户体验
    • 移动端适配 - 确保移动设备友好性
    • HTTPS安全协议 - 提升网站安全性与信任度
    • 结构化数据标记 - 增强搜索结果显示效果

    内容优化服务

    • 关键词研究与布局 - 精准定位目标关键词
    • 高质量内容创作 - 原创、专业、有价值的内容
    • Meta标签优化 - 提升点击率和相关性
    • 内容更新策略 - 保持网站内容新鲜度
    • 多媒体内容优化 - 图片、视频SEO优化

    外链建设策略

    • 高质量外链获取 - 权威网站链接建设
    • 品牌提及监控 - 追踪品牌在线曝光
    • 行业目录提交 - 提升网站基础权威
    • 社交媒体整合 - 增强内容传播力
    • 链接质量分析 - 避免低质量链接风险

    SEO服务方案对比

    服务项目 基础套餐 标准套餐 高级定制
    关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
    内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
    技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
    外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
    数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
    效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

    SEO优化实施流程

    我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

    1

    网站诊断分析

    全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

    2

    关键词策略制定

    基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

    3

    技术优化实施

    解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

    4

    内容优化建设

    创作高质量原创内容,优化现有页面,建立内容更新机制。

    5

    外链建设推广

    获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

    6

    数据监控调整

    持续监控排名、流量和转化数据,根据效果调整优化策略。

    SEO优化常见问题

    SEO优化一般需要多长时间才能看到效果?
    SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
    你们使用白帽SEO技术还是黑帽技术?
    我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
    SEO优化后效果能持续多久?
    通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
    你们提供SEO优化效果保障吗?
    我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

    SEO优化效果数据

    基于我们服务的客户数据统计,平均优化效果如下:

    +85%
    自然搜索流量提升
    +120%
    关键词排名数量
    +60%
    网站转化率提升
    3-6月
    平均见效周期

    行业案例 - 制造业

    • 优化前:日均自然流量120,核心词无排名
    • 优化6个月后:日均自然流量950,15个核心词首页排名
    • 效果提升:流量增长692%,询盘量增加320%

    行业案例 - 电商

    • 优化前:月均自然订单50单,转化率1.2%
    • 优化4个月后:月均自然订单210单,转化率2.8%
    • 效果提升:订单增长320%,转化率提升133%

    行业案例 - 教育

    • 优化前:月均咨询量35个,主要依赖付费广告
    • 优化5个月后:月均咨询量180个,自然流量占比65%
    • 效果提升:咨询量增长414%,营销成本降低57%

    为什么选择我们的SEO服务

    专业团队

    • 10年以上SEO经验专家带队
    • 百度、Google认证工程师
    • 内容创作、技术开发、数据分析多领域团队
    • 持续培训保持技术领先

    数据驱动

    • 自主研发SEO分析工具
    • 实时排名监控系统
    • 竞争对手深度分析
    • 效果可视化报告

    透明合作

    • 清晰的服务内容和价格
    • 定期进展汇报和沟通
    • 效果数据实时可查
    • 灵活的合同条款

    我们的SEO服务理念

    我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

    提交需求或反馈

    Demand feedback