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

Keepalived配置好后,域名解析到哪里

非常好,这是一个非常经典且核心的架构问题。简单直接的回答是:

域名应该解析到 Keepalived 生成的虚拟 IP (VIP) 上。

下面我为你详细解释为什么,以及整个请求的流转过程。


1. 为什么是 Keepalived 的 VIP?

这个架构的核心目标是实现高可用(High Availability)。我们逐层分析:

  • 应用实例层(你的多个实例):它们是实际处理业务请求的服务。但直接配置域名到某个实例,该实例宕机则服务就中断了,不具备高可用性。
  • Nginx 层(多个Nginx实例):Nginx 本身可以实现负载均衡,将请求分发到后端的多个应用实例。但如果你把域名配置到某一个固定的 Nginx 服务器的真实IP上,那么当这台 Nginx 服务器本身宕机时,尽管后端应用实例都是健康的,整个服务依然会中断。
  • Keepalived 层(VIP):Keepalived 的作用就是解决上述 Nginx 单点故障的问题。它通过一组协议(如 VRRP)在多台 Nginx 机器之间协商,最终只有一台机器会持有并对外宣告这个虚拟 IP (VIP)

工作流程如下:

  1. 用户通过域名访问你的服务。
  2. DNS 服务器将域名解析为 Keepalived 的 VIP
  3. 用户的请求被发送到该 VIP。
  4. 当前持有该 VIP 的那台 主(Master)Nginx 服务器会接收到这个请求。
  5. 这台 Nginx 再根据自己的负载均衡规则(如轮询、权重等),将请求转发给后端多个应用实例中的某一个。
  6. 应用实例处理完请求,将结果返回给 Nginx,再由 Nginx 返回给用户。

高可用切换(Failover)过程:

  • 当主 Nginx 服务器发生故障(如宕机、网络异常、Nginx 进程崩溃)时,Keepalived 会检测到。
  • 备(Backup)Nginx 服务器上的 Keepalived 进程会发现主节点不可用,随即接管 VIP,成为新的主节点。
  • VIP 会飘移(Drift)到这台健康的备用服务器上。
  • 对于用户和DNS来说,VIP 没有变化,只是背后持有它的物理服务器变了。整个切换过程对用户是透明的(短暂中断后自动恢复),无需修改域名解析。

2. 架构图与数据流

为了更好地理解,我们可以看下面的流程图:

flowchart TDsubgraph DNS层A[用户访问域名<br>example.com]endsubgraph Keepalived高可用层B[虚拟IP (VIP)<br>192.168.1.100]endsubgraph Nginx服务器层C[NGINX 01<br>主 Master<br>真实IP: 192.168.1.10]D[NGINX 02<br>备 Backup<br>真实IP: 192.168.1.11]endsubgraph 应用实例层E[应用实例<br>192.168.2.10:8080]F[应用实例<br>192.168.2.11:8080]G[应用实例<br>192.168.2.12:8080]endA -- DNS解析 --> BB -- 请求路由到VIP持有者 --> CC -- 负载均衡 --> EC -- 负载均衡 --> FC -- 负载均衡 --> GD -. Keepalived心跳检测 .- CD -. 主节点故障时接管VIP .-> B

总结与最佳实践

选项

配置方式

优点

缺点

结论

Keepalived VIP

域名解析到 VIP(如 192.168.1.100

实现高可用,自动故障转移,对用户透明。

需要额外搭建和维护 Keepalived 集群。

正确选择

某个Nginx实例IP

域名解析到某一台 Nginx 的固定IP(如 192.168.1.10

配置简单。

存在单点故障,该台 Nginx 宕机则整个服务不可用,失去了高可用意义。

不推荐

应用实例IP

域名解析到某个后端应用实例的IP

配置最简单。

无负载均衡,无高可用,实例宕机即服务中断,扩展性极差。

绝对禁止

因此,你的域名 DNS 记录(A 记录或 CNAME)应该指向由 Keepalived 管理的虚拟 IP 地址 (VIP)。 这是保证整个架构高可用性的最关键一步。

补充建议:

  • 确保所有 Nginx 服务器上的配置(nginx.conf)保持一致。
  • 在 Keepalived 配置中,除了网络检查,最好使用 scriptcheck_nginx.sh 等脚本,通过检查本地 Nginx 进程状态来触发切换,这样即使网络通但 Nginx 进程挂掉也能进行故障转移。

文章转载自:

http://WYDL7Hbv.yqtry.cn
http://XciXwnGl.yqtry.cn
http://MBkODbMQ.yqtry.cn
http://MX4UgSIt.yqtry.cn
http://U6SNImO5.yqtry.cn
http://tw4WC2w4.yqtry.cn
http://xGaZuIPj.yqtry.cn
http://LMILYp3c.yqtry.cn
http://90Jf30Ok.yqtry.cn
http://t8aELHsI.yqtry.cn
http://UJPeBlEU.yqtry.cn
http://ymhsLkt1.yqtry.cn
http://cqsoSEqH.yqtry.cn
http://TohLbKVu.yqtry.cn
http://vFlvIATu.yqtry.cn
http://U7l5UlHR.yqtry.cn
http://V92YD4NS.yqtry.cn
http://A2rVhyvJ.yqtry.cn
http://kDtfN9aZ.yqtry.cn
http://r43y7cNg.yqtry.cn
http://t7aTgvGB.yqtry.cn
http://ZXd2fOTH.yqtry.cn
http://wpyaokg5.yqtry.cn
http://7hTFioaf.yqtry.cn
http://W4diYVNz.yqtry.cn
http://4RgBX0IH.yqtry.cn
http://akT6eull.yqtry.cn
http://BlYMGaYf.yqtry.cn
http://F3MRUUXK.yqtry.cn
http://qxUeyQE9.yqtry.cn
http://www.dtcms.com/a/374151.html

相关文章:

  • 滑动窗口题目:长度最小的子数组
  • 如何Maven 构建问题排查与依赖管理
  • 嵌入式学习日记(42)ARM
  • 盖奇的遭遇__[心理学和脑科学神经科学](1)
  • CSS-基础认知(基础篇)
  • 淘宝商品数据爬虫 API 实战开发指南:合规化采集与高效数据处理
  • BBEH:大模型高阶推理能力的“超难”试金石
  • 训诂学与现代人工智能的融合——学术价值、技术潜力与未来展望
  • 【面试题】Transformer创新应用
  • KGDB(Kernel GNU Debugger)工具使用方法详解
  • 架构思维升维:用三层模型穿透技术表象,驾驭复杂系统——淘宝亿级并发架构演进启示录
  • Java设计模式之结构型—装饰器模式
  • Python编程基础(八) | 类
  • Ubuntu1804安装SonarQube
  • commons-lang3
  • 分布式专题——4 大厂生产级Redis高并发分布式锁实战
  • Infortrend普安科技IEC私有云平台VM解决方案
  • 实战对比:百炼知识库与钉钉知识库的全方位对比
  • GitLab升级后仓库镜像信任证书导入问题
  • 2. 计算机系统基础知识
  • 软考中级习题与解答——第三章_操作系统(2)
  • 第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛--算法题科普
  • 【CentOS7】使用yum安装出错,报HTTPS Error 404 - Not Found
  • 今天继续学习shell脚本
  • 解决哈希冲突
  • C++算法专题学习:栈相关的算法
  • CentOS部署ELK Stack完整指南
  • 多模态大模型Keye-VL-1.5发布!视频理解能力更强!
  • JAK/STAT信号通路全解析:核心分子、激活与负调控
  • 人工智能知识图谱应用平台国家标准发布实施