企业级Nginx+keepalived 双主架构笔记参考

2023-11-13

对于主备架构,始终存在一台服务器处于空闲状态,对于企业来说,资源分配就不很合理,如果要将两台服务器都利用起来,可以使用主主架构的方式,同时2台都对外服务,拥有2个VIP地址,同时接收用户的请求:
在这里插入图片描述

双主架构的实现步骤参考

master1(反向代理1)的配置文件

! Configuration File for keepalived
global_defs {
router_id TEST_HA
}
vrrp_script chk_80 {
script "/usr/local/etc/keepalived/chk_status.sh"
interval 5
weight -3
}

vrrp_instance VI_1 {
interface ens32      
state MASTER     
priority 101        
virtual_router_id 71
garp_master_delay 1
authentication {
auth_type PASS
auth_pass password
}
track_interface {
ens32    
}
virtual_ipaddress {
192.168.137.99/32    
}

vrrp_instance VI_2 {
interface ens32      
state BACKUP     
priority 99        
virtual_router_id 72
garp_master_delay 1
authentication {
auth_type PASS
auth_pass password
}
track_interface {
ens32    
}
virtual_ipaddress {
192.168.137.100/32    
}

track_script {
chk_80
}
}

master2(反向代理2)的配置文件

! Configuration File for keepalived
global_defs {
router_id TEST_HA
}
vrrp_script chk_80 {
script "/usr/local/etc/keepalived/chk_status.sh"
interval 5
weight -3
}

vrrp_instance VI_1 {
interface ens32      
state BACKUP     
priority 99        
virtual_router_id 71
garp_master_delay 1
authentication {
auth_type PASS
auth_pass password
}
track_interface {
ens32    
}
virtual_ipaddress {
192.168.137.99/32    
}

track_script {
chk_80
}
}

vrrp_instance VI_2 {
interface ens32      
state MASTER     
priority 101        
virtual_router_id 72
garp_master_delay 1
authentication {
auth_type PASS
auth_pass password
}
track_interface {
ens32    
}
virtual_ipaddress {
192.168.137.100/32    
}

track_script {
chk_80
}
}

重启keepalived服务

/usr/local/sbin/keepalived

验证双主架构

VIP1地址访问结果应该是反向代理服务器1的nginx页面:192.168.137.99
在这里插入图片描述
VIP2地址访问结果应该是反向代理服务器2的nginx页面:192.168.137.100
在这里插入图片描述

验证高可用性

关闭反向代理1上面的nginx进程(/usr/sbin/nginx -s quit):VIP1的访问结果应该指向反向代理2的nginx的页面
在这里插入图片描述
重新开启反向代理1上面的nginx进程(/usr/sbin/nginx):VIP1的访问结果回到反向代理1的nginx页面
在这里插入图片描述
同理验证VIP2的高可用性:
在这里插入图片描述
重新开启反向代理2上面的nginx进程后:
在这里插入图片描述

双主架构下网络信息探索

  • 双主架构正常服务下,服务器各占一个VIP地址
    192.168.137.14 对应的VIP地址:192.168.137.99
    在这里插入图片描述
    192.168.137.15对应的VIP地址:192.168.137.100
    在这里插入图片描述
  • 当一方出现故障时,可以发现2个VIP地址都在同一台服务器上
    在这里插入图片描述

实践总结

1. 双主下的架构中,keepalived的配置文件必须设置不同的VRRP名称,同时优先级和VIP设置也不能相同
2. 双主下存在2个VIP地址,企业实际环境可域名解析到2个VIP上即可,DNS映射不同的VIP地址,也叫DNS负载均衡模式
3. 可以通过监控软件来实现VIP访问状态是否正常
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

企业级Nginx+keepalived 双主架构笔记参考 的相关文章

  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设

随机推荐

  • 深入理解Google Cast(三)探寻原理

    如何开发一个receiver application 先来简单说一下这个话题 Receiver本质就是一个网页 由html CSS和jacascript开发 如果要自定义receiver application 需要在 Google Cas
  • LaTeX的斜体,粗体

    参考 LaTeX的斜体 粗体 云 社区 腾讯云 写文章的小伙伴应该知道 在文章中 变量是需要斜体的 那么怎么才是斜体呢 首先 在LATEX中 强调可以以斜体形式展现出来 那么强调命令是如何体现的呢 语法 emph 内容 打开Winedit
  • 【翻译】ASF 法律委员会发布贡献者生成式 AI 指南

    中英文对照版请点击 ASF 法律委员会发布贡献者生成式 AI 指南 中英文对照 查看 除非你在过去一年左右的时间里一直生活在岩石之下 否则你很可能已经听说过很多关于生成式人工智能如何快速发展并正在迅速改变我们所熟知的软件行业的事情 虽然猜测
  • python 利用chinese_calendar 获取上一个工作日日期

    截止文章发布chinese calendar版本为1 8 0 大约在每年的11月份更新次年的节假日新版本 import datetime from chinese calendar import is workday def get per
  • 多线程下事务控制

    我篇文章 大数据批量新增or修改太慢太Low 线程池 CountDownLatch CompletableFuture完美解决 弊端就是无法实现事务控制 那么今天他就来啦 需求 大数据平台去获取数据 gt 通过对象组装 gt 插入到对应的表
  • Hibernate中merge()方法的坑

    标题Hibernate的merge方法的原理网上已经有很多篇文章介绍了 执行merge后 如果传入的对象有ID merge会先去数据库通过ID查 若查到则改 若查不到则增 也就是说 相比直接insert或是update 用merge的实现会
  • 执行kubeadm init 安装kubernetes时报错: [ERROR FileExisting-conntrack]: conntrack not found in system path

    使用kubeadin init安装kubernetes时报如下错误 解决方法 yum y install socat conntrack tools
  • STM32基于HAL库的开发与应用(2)GPIO口控制

    一 GPIO口是在单片机开发应用中使用最频繁的一个控制 GPIO口可作为输出高低电平也可以作为输入检测输入电平的高低 1 通常GPIO口输出控制LED灯 有源蜂鸣器等一些只需要高低电平就可以触发的模块 2 通常GPIO口作为输入 用来检测输
  • dz论坛伪静态加http跳转https遗留问题apache配置ssl

    一 首先 申请并且配置好服务器ssl证书 阿里 腾讯都有免费的 同时都有教程 下载apache格式的证书 解压后放到d ssl 目录 打开 D phpStudy Apache conf httpd conf 在最后面添加SSL配置
  • 2.基于原型的聚类方法

    基于原型的聚类方法 文章目录 一 概念 二 K Means 2 1 算法流程 2 2 超参数 2 3 特性 2 4 解析 2 5 K Means 2 6 Python实现 三 K Mediods 3 1 概念 3 2 算法对比 四 特性 一
  • android实现每天定时提醒的功能

    有时开发中有这样的需求 每天几点定时提醒等等 下面就来实现这个功能 首先新建一个广播接收者 public class AlarmReceiver extends BroadcastReceiver Override public void
  • 案例——UDP聊天

    UDP聊天案例 做一个网络编程相关的案例 想着用利用UDP的快速且不用连接的优点做一个聊天室 我们一个聊天程序需要可以接收消息 也要可以发送消息 所以我们的DatagramSocket对象不但需要调用send函数 还需要调用recieve函
  • 【C语言】qsort 快速排序函数(详解+用法+my_qsort函数模拟实现)

    本文详细讲解qsort函数用法 并包含很多知识细节 干活满满 文章目录 qsort函数功能 qsort函数声明 函数指针 qsort函数用法 整型 浮点型 字符型 字符串型 结构体型 my qsort函数模拟实现 qsort函数功能 排序是
  • 【数据分析】基于RFM模型的线上零售中的客户细分(一):客户细分

    基于RFM模型的线上零售中的客户细分 一 简介 RFM模型通常被用来衡量客户价值和客户创利能力 是商业数据分析中的重要工具和手段 这次我将使用RFM模型对线上零售数据进行客户细分 本篇博客是关于客户细分的相关介绍 具体实例项目将在下一篇博客
  • mutable和volatile

    mutable变量永远处于可变的状态 mutable在类中只能修饰非静态数据成员 即使是在const函数中 甚至是const结构体变量或类对象 其mutable成员也可以被修改 我们知道 如果类的成员函数不会改变对象的状态 那么这个成员函数
  • Feedsky 上 csdn blog 订阅数排名 (zz)

    1114356 programmer editor http blog csdn net programmer editorhttp feeds feedsky com csdn net programmer editor 23897 po
  • matlab_ga(),matlab遗传算法ga函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function optimization4 A b Aeq beq LB 0 1 0 03 0 03 0 1 0 03 0 03 UB 0 4 0 06 0 06 0 4 0 06 0 06
  • python+selenium自动化测试框架实例_顶Python+Selenium搭建UI自动化测试框架

    Python语言是非常强大的编程语言 很多时候也拿来当脚本语言用 Selenium是web应用测试工具 支持Java Python等多种语言脚本 支持Chrome Firefox等多种主流浏览器 主要实现的就是模拟人使用web应用 自动的打
  • 解决Windows11能登录QQ微信,但不可以使用浏览器上网

    解决浏览器不能上网 报错ERR PROXY CONNECTION FAILED 首先我们看到我们的以太网显示连接正常 但是 但我们打开谷歌浏览器是这样的 当我们打开IE是这样的 然后它们都报同样一个错误 ERR PROXY CONNECTI
  • 企业级Nginx+keepalived 双主架构笔记参考

    对于主备架构 始终存在一台服务器处于空闲状态 对于企业来说 资源分配就不很合理 如果要将两台服务器都利用起来 可以使用主主架构的方式 同时2台都对外服务 拥有2个VIP地址 同时接收用户的请求 双主架构的实现步骤参考 master1 反向代