当前位置: 首页 > ops >正文

keepalived详细笔记

keepalived 是一种基于VRRP(虚拟路由器冗余协议)的高可用解决方案,主要是用于服务器的负载均衡和高可用性的保障,自动将服务切换到备份服务器上,确保业务的连续性。

工作原理:

VRRP协议:一组路由器(或服务器)组成一个虚拟路由器,其中有一个主路由器(Master)和多个备份路由器(Backup)。虚拟路由器有一个虚拟 IP 地址(VIP),对外提供服务。主路由器定期发送VRRP通告消息,备份路由器监听这些消息。

当备份路由器在一定时间内没有收到主路由器的通告消息时,会认为主路由器发生故障,此时会根据优先级选举出一个新的主路由器,并接管虚拟 IP 地址,继续对外提供服务。

Keepalived 在此基础上,不仅实现了 VRRP 的基本功能,还添加了一些自定义的健康检查机制和服务管理功能。它对后端的真实服务器进行健康检查,如通过 HTTP、TCP 等协议检查服务器的端口是否可达、服务是否正常响应等。

如果检测到某台真实服务器出现故障,Keepalived 可以将其从负载均衡集群中剔除,待服务器恢复正常后再重新加入。

keepalived+nginx高可用实验

1.下载 Nginx 源码包:

cd /usr/local/src

wget http://nginx.org/download/nginx-1.18.0.tar.gz

  • 解压源码包:

    tar -zxvf nginx-1.18.0.tar.gz

    进入解压目录配置并编译安装

    cd nginx-1.18.0

    ./configure --prefix=/usr/local/nginx

    make && make install

    启动Nginx

    /usr/local/nginx/sbin/nginx

    • 验证 Nginx 是否成功启动:在浏览器中输入服务器的内网 IP 地址,若出现 Nginx 的欢迎页面,则启动成功。

  1. 安装 Keepalived

    • 在 Server1 和 Server2 上同时进行以下操作:

yum install -y keepalived
  1. 配置 Keepalived

    • 在 Server1 上,编辑 /etc/keepalived/keepalived.conf 文件,如下:

global_defs {router_id SERVER1  # 服务器唯一标识
}
​
# 定义 VRRP 实例
vrrp_instance VI_1 {state MASTER  # 此服务器为主服务器interface ens160  # 绑定的网络接口virtual_router_id 65  # 虚拟路由器 ID,取值范围 0 - 255,同一组需保持一致priority 100  # 优先级,数值越大优先级越高advert_int 1  # 通告间隔时间,单位为秒authentication {auth_type PASS  # 认证类型为简单密码认证auth_pass 123456  # 认证密码,需与 Server2 保持一致}virtual_ipaddress {192.168.65.200/24 dev ens160  # 虚拟 IP 地址}
}
  • 在 Server2 上,编辑 /etc/keepalived/keepalived.conf 文件,如下:

global_defs {router_id SERVER2  # 服务器唯一标识
}
​
# 定义 VRRP 实例
vrrp_instance VI_1 {state BACKUP  # 此服务器为备用服务器interface ens160  # 绑定的网络接口virtual_router_id 65  # 虚拟路由器 ID,取值范围 0 - 255,同一组需保持一致priority 90  # 优先级,低于 Server1advert_int 1  # 通告间隔时间,单位为秒authentication {auth_type PASS  # 认证类型为简单密码认证auth_pass 123456  # 认证密码,需与 Server1 保持一致}virtual_ipaddress {192.168.65.200/24 dev ens160  # 虚拟 IP 地址}
​
}
  1. 启动 Keepalived

    • 在 Server1 和 Server2 上分别执行:

systemctl start keepalived

MASTER(主)节点(192.168.65.131)成功标志

192.168.65.131拿到了VIP 192.168.131.200。

BACKUP(备)节点(192.168.65.132)成功标志

BACKUP上只有192.168.65.132这个ip,正常。

  1. 测试高可用性

    • 初始状态下,在局域网内的其他电脑(或通过虚拟机的宿主机)上,在浏览器中输入虚拟 IP 地址(192.168.1.200),此时应该能访问到 Server1 上的 Nginx 页面,因为 Server1 为主服务器。

    • 模拟 Server1 故障:

      • 在 Server1 上停止 Keepalived 服务:

systemctl stop keepalived

*初始状态:*

*模拟故障:*

  • 快速在浏览器中再次输入虚拟 IP 地址,此时页面应能快速切换到 Server2 上的 Nginx 页面,这表明 Server2 成功接管服务。

这样,就完成了一个 Keepalived + Nginx 的简单实验,实现了 Web 服务的高可用性。

http://www.xdnf.cn/news/4906.html

相关文章:

  • 2025 年数维杯数学建模 C 题完整论文代码模型:清明时节雨纷纷,何处踏青不误春
  • .net/C#进程间通信技术方案总结
  • C#黑魔法:鸭子类型(Duck Typing)
  • ChatGPT深度研究功能革新:GitHub直连与强化微调
  • qtcreater配置opencv
  • 对golang中CSP的理解
  • 34.笔记1
  • 【挑战项目】 --- 微服务编程测评系统(在线OJ系统)(二)
  • 多线程面试题总结
  • python 上海新闻爬虫, 上观新闻 + 腾讯新闻
  • C 语言中的 对象(object),值(Value),类型(Type)
  • C++ Lambda表达式应用详解
  • python实现点餐系统
  • MCP专题| 突破LLM三大瓶颈!模型上下文协议(MCP)如何重塑AI交互体验?
  • 高可用系统架构演进史——从单体节点到分布式系统的继承权治理方案
  • 【网安播报】Meta 推出 LlamaFirewall开源框架以阻止 AI 越狱、注入和不安全代码
  • 录播课收入增长四维模型与执行方案
  • 一种安全不泄漏、高效、免费的自动化脚本平台
  • 初识C++:入门基础(二)
  • POSE识别 神经网络
  • STM32--PWM--函数
  • 股票行情实时数据:港股、美股、沪深A股行情数据的具体细分内容介绍在哪里可以获取到便宜的股票实时行情?
  • 【5分钟学Docker】Docker快速使用
  • CST矩形喇叭建模
  • 第二节:变量、数据类型与运算符:JS 的基石
  • 佰力博科技与您探讨薄膜极化的类型、机制与应用领域
  • 从零开始的python学习(六)P86+P87+P88
  • 【软件工程】软件多缺陷定位方法总结
  • 从韦斯利・卡普洛看北斗星咨询公司的技术咨询引领之路
  • Docker Compose 部署 MeiliSearch 指南