style="display:
center;">
style="display:
center;">
96SEO 2026-02-20 08:58 10
center;"> center;">style="display:
style="display:
center;">
center;"> 是
transform="translate(-60.1953125,
center;"> 否/主服务器宕机
center;">
center;">
center;">
transform="translate(-43.38671875,
center;"> 用户访问VIP
transform="translate(-70.32421875,
center;"> VIP绑定在谁的网卡?
center;"> 主服务器处理请求
200px;"> 主服务器Keepalived发送VRRP通告
200px;"> 备服务器收到通告,保持备用
200px;"> 健康检查:主服务器Nginx/端口正常?
center;"> 继续服务
200px;"> 主服务器Keepalived停止发送通告
center;"> 备服务器超时未收到通告
transform="translate(-99.38671875,
center;"> 备服务器升级为主,绑定VIP
200px;"> 用户请求自动路由到备服务器
协议实现+健康检查模块。
VRRP
协议通过以下步骤协调主备:
组,协商优先级(数值越高越优先)。
通告(包含自己的优先级、状态)。
秒),认为主服务器故障,自己升级为主。
绑定到本地网卡,开始处理请求。
服务器
master
IP(VIP):192.168.1.100(需与主备服务器同网段)
Keepalived
两台服务器都执行以下命令:
#安装(CentOS
yum)
yuminstall-ykeepalived#
查看版本(验证安装成功)keepalived
-v#
(09/24,2019)
Keepalived(关键!)
主服务器(192.168.1.101)配置文件:/etc/keepalived/keepalived.conf
global_defsrouter_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-Cnginx
--no-headers|wc-l)
-eq0];***n#如果不存在,尝试重启Nginx
systemctlrestart
等待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
举例:
故障(健康检查失败):有效优先级
/>
以上,模拟生产环境)。
默认版本可能较旧,可编译安装最新版)
前面的配置文件和健康检查脚本就是“源代码”,这里重点解读关键参数:
vrrp_instance块核心参数| 参数名 | 说明 | 主节点值 | 备节点值 |
|---|---|---|---|
state | 节点初始状态(MASTER/BACKUP) | MASTER | BACKUP |
interface | 绑定VIP的网卡( | ens33 | ens33 |
virtual_router_id | VRRP ID(主备必须相同,0-255) | 51 | 51 |
priority | 初始优先级(数值越高越优先) | 100 | 90 |
advert_int | 发送VRRP1) | 1 | 1 |
au***ntication | 认证(防伪造通告,主备密码必须相同) | auth_pass 1111 | |
virtual_ipaddress | 虚拟 IP(可多个,格式:IP/子网掩码) | 192.168.1.100/24 | 192.168.1.100/24 |
vrrp_script块核心参数| 参数名 | 说明 | 值 |
|---|---|---|
script | 健康检查脚本路径(需可执行) | /etc/keepalived/check_nginx.sh |
interval | 检查间隔(秒) | 5 |
weight | 检查失败时,当前节点优先级调整值(正数提升,负数降低) | -20 |
为什么主备的virtual_router_id必须相同?
组通过virtual_router_id区分不同的高可用组。
如果主备的
不同,它们会认为属于不同的组,无法通信和切换。
为什么健康检查脚本要重启
短暂故障(如重启)触发误切换。
比如,手动重启
时,进程会短暂消失,脚本尝试重启后恢复,避免
误判为主节点故障。
advert_int可以调大吗?
/>可以,但需权衡“检测速度”和“网络开销”。
调大(如
秒)会减少网络广播,但故障检测时间会延长(切换延迟增加);调小(如
秒)检测更快,但可能增加网络负担。
高可用方案广泛应用于以下场景:
服务器高可用
Nginx/Apache,确保某台服务器宕机时服务不中断。
数据库高可用(配合主从复制)
主从复制架构中,主数据库宕机时,Keepalived
到从数据库(需结合read_only配置,避免数据冲突)。
负载均衡器高可用
虚拟服务器)作为负载均衡器时,Keepalived
提供高可用,确保负载均衡器本身不成为单点故障。
/>
官方文档:最权威的配置指南,包含所有参数说明。
文档:想深入理解底层原理的必读材料。
状态(通过keepalived_exporter采集指标,如vrrp_instance_state)。
journalctlkeepalived
查看运行日志(定位切换问题的关键)。
开始与kube-vip等工具结合,为云原生应用提供基于
LoadBalancer)。
是主备模式(1主N备),未来可能支持多主模式(多个节点同时提供服务,VIP
流量负载均衡),提升资源利用率。
当主备节点因网络分区(如交换机故障)无法通信时,可能出现“脑裂”——主备都认为对方故障,同时绑定
VIP。
解决方案:
/>
协议
:主备的“裁判”,通过优先级和通告协调谁接管IP(VIP):用户访问的“共享招牌”,主备切换时自动迁移。
的节点真的能提供服务。
决定“谁来拿招牌”,健康检查决定“拿招牌的人是否能干活”,VIP
/>
如果主服务器的网络卡了(能发通告但延迟很高),备服务器会误切换吗?如何避免?(提示:调整advert_int和master_down_interval)
你能为
高可用方案吗?需要注意哪些问题?(提示:主从复制延迟、从库read_only状态)
如果有
台服务器(1主2备),如何配置
实现“主→备1→备2”的级联切换?
/>
没绑定到主服务器?
virtual_router_id不一致。端口)。
virtual_router_id是否相同。流量:
firewall-cmd--add-multicast=224.0.0.18
--permanent
--reload
没切换?
chmod+x
漏掉了)。0)。
sh/etc/keepalived/check_nginx.sh
)。exit1
。VIP,但用户请求还是到主服务器?
地址未同步)。
ipconfig/flushdns
(Windows)或systemctlrestart
systemd-resolved
(Linux)刷新缓存。
映射(正常流程会自动处理,无需手动操作)。
服务器高可用架构实战》(机械工业出版社)
搭建高可用集群
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback