深入浅出 -- 系统架构之负载均衡Nginx实现高可用

news2025/1/30 15:56:14

一、Nginx的高可用

   线上如果采用单个节点的方式部署Nginx,难免会出现天灾人祸,比如系统异常、程序宕机、服务器断电、机房爆炸、地球毁灭....哈哈哈,夸张了。但实际生产环境中确实存在隐患问题,由于Nginx作为整个系统的网关层接入外部流量,所以一旦Nginx宕机,最终就会导致整个系统不可用,这无疑对于用户的体验感是极差的,因此也得保障Nginx高可用的特性。

接下来则会通过keepalivedVIP机制,实现Nginx的高可用。
VIP并不是只会员的意思,而是指Virtual IP,即虚拟IP

keepalived在之前单体架构开发时,是一个用的较为频繁的高可用技术,比如MySQL、Redis、MQ、Proxy、Tomcat等各处都会通过keepalived提供的VIP机制,实现单节点应用的高可用。

Keepalived+重启脚本+双机热备搭建

具体青请参考,在上篇《深入浅出 -- 系统架构之Keepalived搭建双机热备》中通过keepalived如何搭建了主从双机热备。

Nginx高可用性测试

   经过上述步骤后,keepalivedVIP机制已经搭建成功,在上个阶段中主要做了几件事:

  • 一、为部署Nginx的机器挂载了VIP
  • 二、通过keepalived搭建了主从双机热备。
  • 三、通过keepalived实现了Nginx宕机重启。

由于前面没有域名的原因,因此最初server_name配置的是当前机器的IP,所以需稍微更改一下nginx.conf的配置:

sever{
    listen    80;
    # 这里从机器的本地IP改为虚拟IP
	server_name 192.168.12.111;
	# 如果这里配置的是域名,那么则将域名的映射配置改为虚拟IP
}

最后来实验一下效果:

在上述过程中,首先分别启动了keepalived、nginx服务,然后通过手动停止nginx的方式模拟了Nginx宕机情况,过了片刻后再次查询后台进程,我们会发现nginx依旧存活。

从这个过程中不难发现,keepalived已经为我们实现了Nginx宕机后自动重启的功能,那么接着再模拟一下服务器出现故障时的情况:

在上述过程中,我们通过手动关闭keepalived服务模拟了机器断电、硬件损坏等情况(因为机器断电等情况=主机中的keepalived进程消失),然后再次查询了一下本机的IP信息,很明显会看到VIP消失了!

现在再切换到另外一台机器:192.168.12.130来看看情况:

此刻我们会发现,在主机192.168.12.129宕机后,VIP自动从主机飘移到了从机192.168.12.130上,而此时客户端的请求就最终会来到130这台机器的Nginx上。

最终,利用KeepalivedNginx做了主从热备之后,无论是遇到线上宕机还是机房断电等各类故障时,都能够确保应用系统能够为用户提供7x24小时服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1575680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于R语言BIOMOD2模型的物种分布模拟

随着生物多样性全球大会的举办,不论是管理机构及科研单位、高校都在积极准备,根据国家林草局最新工作指示,我国将积极整合、优化自然保护地,加快推进国家公园体制试点,构建以国家公园为主体的自然保护地体系。针对我国…

Visual Studio 配置代码风格审查工具cpplint

文章目录 一、Visual Studio 配置代码风格审查工具cpplint1、安装2、运行3、集成到Visual Studio4、集成到Git 前言 cpplint是一个用于检查C代码风格的工具,它可以帮助我们发现潜在的编码问题,提高代码质量。cpplint遵循Google的C编码规范,通…

机器学习——模型融合:平均法

机器学习——模型融合:平均法 在机器学习领域,模型融合是一种通过结合多个基本模型的预测结果来提高整体模型性能的技术。模型融合技术通常能够降低预测的方差,提高模型的鲁棒性,并在一定程度上提高预测的准确性。本文将重点介绍…

安装selenium和关于chrome高版本对应的driver驱动下载安装【Win/Mac 】

目录 一、查看自己电脑上chrome的版本 二、下载 ChromeDriver 三、安装selenium 法一:打开pycharm,点击File,Setting进入配置页面,点击Project下面的Python Interpreter进入环境配置页面,点击。输入selenium。之后…

JavaScript逆向爬虫——无限debugger的原理与绕过

debugger 是 JavaScript 中定义的一个专门用于断点调试的关键字,只要遇到它,JavaScript 的执行便会在此处中断,进入调试模式。 有了 debugger 这个关键字,就可以非常方便地对 JavaScript 代码进行调试,比如使用 JavaSc…

zookeeper中的znode节点的一些功能和应用

zookeeper是一个挺好玩的东西 有着独特的选举机制,一般在中小型集群中,zookeeper一般装在三个节点 其中只有一个节点对外提供服务,处于leader状态,另外两台未follower状态 这得益于zookeeper独特的选举机制,可以保证le…

IP证书申请

目录 申请IP证书的基本条件: 申请和使用公网IP证书的过程: 为什么需要申请IP地址证书? 申请IP证书: IP证书又称公网IP地址证书,是一种特殊的SSL/TLS证书,其作用原理和普通的域名证书很像,域…

90天玩转Python—05—基础知识篇:Python基础知识扫盲,使用方法与注意事项

90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装) 90天玩转Python—04—基础知识篇:Pytho…

大规模基因检测成本降低,OceanBase助力基因测序普惠民众

本文来自OceanBase客户的分享 1990年10月,人类基因组计划正式拉开帷幕,它与曼哈顿原子弹计划和阿波罗登月计划并驾齐驱,被誉为二十世纪人类三大科学工程。这项宏伟的工程耗费了高达38亿美元的资金,历经13年,终于在2003…

P1123 取数游戏(dfs算法)

题目描述 一个 NM 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻 8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。 输入格式 第…

将excel,csv中合并块中某条记录的值应用到整个块(使用多行的值,来填充新列数据)。

背景描述 在excel中使用其它列的值,根据某种计算规则来填充另一列(或新列)很容易实现。但是如果需要根据合并块中的多行来填充列时,就不容易实现,由于对excel不是太常用,因此这里使用的命令行工具实现的。…

全坚固笔记本丨工业笔记本丨三防笔记本相较于普通笔记本有哪些优势?

三防笔记本和普通笔记本在设计和性能方面存在显著差异,三防笔记本相较于普通笔记本具备以下优势: 三防笔记本通常采用耐磨、耐摔的材料,并具有坚固的外壳设计,能够承受恶劣环境和意外碰撞,有效保护内部组件不受损坏。相…

微信小程序真机无法下载文件

问题: 1、真机无法展示加了防盗链的图片 2、真机无法下载pdf等文件 文件服务器供应商:腾讯 解决: 1、在文件服务器控制台加上微信小程序的域名白名单:servicewechat.com 具体可查看:对象存储 设置防盗链-控制台指…

Python零基础从小白打怪升级中~~~~~~~入门

第一节:Python入门(一) 1、Python介绍 编程语言就是人和计算机进行交流的一种语言 Pythonc / CJavaPHPC#gobasicqbasicVBVCPython 是一个高层次的结合了解释性、编译性、互动性和面向对象,同时也面向函数的脚本语言。 Python 是…

Django之静态文件及模板语法(上)

Python学习之路系列文章目录 python面向对象之警察与匪徒火拼场景模拟python面向对像之第二次笔记Django环境搭建及测试第1个Django应用及Django的请求处理Django之静态文件及模板语法(上) 静态文件及模板语法 Python学习之路系列文章目录一、静态文件1.…

【leetCode】2810. 故障键盘

文章目录 [2810. 故障键盘](https://leetcode.cn/problems/faulty-keyboard/)思路一:模拟代码:思路二:双端队列代码: 2810. 故障键盘 思路一:模拟 用StringBuilder来拼贴字符遍历字符串,如果遇到i,对拼贴好…

Node操作mysql

配置 安装mysql模块 npm i mysql建立连接 const mysql require(mysql);const db mysql.createPool({host: 127.0.0.1,user: root,password: admin123,database: my_db_01 });测试 // select 1没有任何实质性作用 只是检查mysql模块是否正常 db.query(select 1, (err, results…

YOLOv9改进策略 :小目标 | 新颖的多尺度前馈网络(MSFN) | 2024年4月最新成果

💡💡💡本文独家改进:多尺度前馈网络(MSFN),通过提取不同尺度的特征来增强特征提取能力,2024年最新的改进思路 💡💡💡创新点:多尺度前馈网络创新十足,抢先使用 💡💡💡如何跟YOLOv8结合:1)放在backbone后增强对全局和局部特征的提取能力;2)放在detect…

2024春算法训练4——函数与递归题解

一、前言 感觉这次的题目都很好,但是E题....(我太菜了想不到),别人的题解都上百行了,晕; 二、题解 A-[NOIP2010]数字统计_2024春算法训练4——函数与递归 (nowcoder.com) 这种题目有两种做法:…

蓝桥杯算法题:卡片换位

问题描述 你玩过华容道的游戏吗?这是个类似的,但更简单的游戏。 看下面 2 x 3 的格子 --------- | A | * | * | --------- | B | | * | --------- 1 2 3 4 5 在其中放 5 张牌,其中 A 代表关羽,B 代表张飞,* 代表士兵…