企业级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 双主架构笔记参考 的相关文章

  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • 我可以从命令行打印 html 文件(带有图像、css)吗?

    我想从脚本中打印带有图像的样式化 html 页面 谁能建议一个开源解决方案 我使用的是 Linux Ubuntu 8 04 但也对其他操作系统的解决方案感兴趣 你可以给html2ps http user it uu se jan html2
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • 为什么我可以直接从 bash 执行 JAR?

    我是一个长期从事 Java 工作的人 并且知道运行带有主类的 JAR 的方法MANIFEST MFJar 中的文件很简单 java jar theJar jar 我用它来启动 Fabric3 服务器 包含在bin server jar在其标
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不

随机推荐

  • 深入理解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 反向代