生产环境:Nginx高可用方案
准备工作:
192.168.16.128
192.168.16.129
两条虚拟机。安装好Nginx
安装Nginx
更新yum
源文件:
安装Nginx:
操作命令:
什么是高可用?
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如果一个系统能够一直提供服务,那么这个可用性则是百分之百,但是天有不测风云。所以我们只能尽可能的去减少服务的故障。
解决的问题?
在生产环境上很多时候是以Nginx
做反向代理对外提供服务,但是一天Nginx难免遇见故障,如:服务器宕机。当Nginx
宕机那么所有对外提供的接口都将导致无法访问。
虽然我们无法保证服务器百分之百可用,但是也得想办法避免这种悲剧,今天我们使用keepalived
来实现Nginx
的高可用。
双机热备方案
这种方案是国内企业中最为普遍的一种高可用方案,双机热备其实就是指一台服务器在提供服务,另一台为某服务的备用状态,当一台服务器不可用另外一台就会顶替上去。
keepalived是什么?
Keepalived
软件起初是专为LVS
负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)
功能。因此,Keepalived
除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)
的高可用解决方案软件
故障转移机制
Keepalived
高可用服务之间的故障切换转移,是通过VRRP
来实现的。
在Keepalived
服务正常工作时,主Master
节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup
节点自己还活着,当主Master
节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主Master
节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。
实现过程
安装keepalived
yum
方式直接安装即可,该方式会自动安装依赖:
修改主机(192.168.16.128)keepalived配置文件
yum
方式安装的会生产配置文件在/etc/keepalived
下:
keepalived.conf:
virtual_ipaddress
里面可以配置vip,在线上通过vip来访问服务。
interface
需要根据服务器网卡进行设置通常查看方式ip addr
authentication
配置授权访问后备机也需要相同配置
修改备机(192.168.16.129)keepalived配置文件
keepalived.conf:
检测脚本:
脚本授权:chmod 775 check_nginx_pid.sh
说明:脚本必须通过授权,不然没权限访问啊,在这里我们两条服务器执行、VIP(virtual_ipaddress:192.168.16.130)
,我们在生产环境是直接通过vip来访问服务。
模拟nginx
故障:
修改两个服务器默认访问的Nginx
的html
页面作为区别。
首先访问192.168.16.130
,通过vip
进行访问,页面显示192.168.16.128
;说明当前是主服务器提供的服务。
这个时候192.168.16.128
主服务器执行命令:
再次访问vip(192.168.16.130)
发现这个时候页面显示的还是:192.168.16.128
,这是脚本里面自动重启。
现在直接将192.168.16.128
服务器关闭,在此访问vip(192.168.16.130)
现在发现页面显示192.168.16.129
这个时候keepalived
就自动故障转移了,一套企业级生产环境的高可用方案就搭建好了。
keepalived
中还有许多功能比如:邮箱提醒啊等等,就不操作了,可以去官网看看文档。
长按订阅更多精彩▼
生产环境:Nginx高可用方案相关推荐
- 解决方案:Nginx高可用方案
解决方案:Nginx高可用方案 关键词 KeepAlived(主服务器 和 备份服务器 故障时 IP 瞬间无缝交接) VRRP协议(路由器组,提供虚拟IP,一个master和多个backup,组播消息 ...
- nginx高可用方案:keepalived+nginx vip 动态位移
文章目录 一.部署总览+常用命令 1. 部署总览 2. 常用命令 二.软件安装配置 2.1. 安装keepalived 2.2. 安装nginx 2.3. 配置静态文件 三.测试 3.1. 启动ngi ...
- Nginx 高可用秘籍
什么是高可用? 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 如果一个系统能够一直提供服务,那么这个可用性 ...
- mysql主主和F5高可用_MYSQL 主主热备高可用方案与实现
咱们选择主主互热备作生产环境MYSQL高可用方案,该方案的优势是在压力大的时候,仍然能够经过设置负载均衡来作业务分发.并且最重要的是配置简单,两份配置都同样,改个IP就能够 就喜欢简单的东西.mysq ...
- 算法高级(15)-LVS的负载均衡策略及LVS+KeepAlived+Nginx实现高可用方案
前面讲的nginx负载均衡,是属于网络七层负载,今天讲另外一种负载均衡技术LVS,它是基于网络四层进行负载,性能很好,通常在大型项目中,我们会同时使用四层和七层负载. 一.LVS简介 LVS是Linu ...
- 全网唯一的、DIY的Prometheus高可用方案,生产未上,测试先行。
写在开篇 关于prometheus的高可用方案,经过笔者不断的研究.对比.和搜索,发现不管是官方.还是各大搜索引擎搜索出来的方案,都不符合笔者的需求.因此,笔者自己设计了一套prometheus主备的 ...
- 高可用系列文章之三 - NGINX 高可用实施方案
前文链接 高可用系列文章之一 - 概述 - 东风微鸣技术博客 (ewhisper.cn) 高可用系列文章之二 - 传统分层架构技术方案 - 东风微鸣技术博客 (ewhisper.cn) 四 NGINX ...
- MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解
MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...
- MySQL高可用方案-PXC环境部署记录
之前梳理了Mysql+Keepalived双主热备高可用操作记录,对于mysql高可用方案,经常用到的的主要有下面三种: 一.基于主从复制的高可用方案:双节点主从 + keepalived 一般来说, ...
最新文章
- react骨架屏自动生成_用纯 DOM 的方式结合 Puppeteer 自动生成网页骨架屏
- 代码生成工具Database2Sharp功能功能完善及更新
- 【Linux】1.shell各个命令
- 校验用户画像的准确性
- 如何c51和mdk共存兼容_电磁兼容入门篇之基础知识(一)
- CF思维联系–CodeForces -224C - Bracket Sequence
- 2_RabbitMQ工作模式_Work queues_Publish/Subscribe_Routing_Topics_HeaderRpc
- 使用XLocalizer进行ASP.NET Core本地化
- JAVAEWEB实现文件的上传案例
- 一份神奇的礼物(1)
- 转基因粮食的毒性,首先是因为农药
- linux系统如何启动rpcbind,在Linux系统上关闭rpcbind、postfix、rpc.statd、hpiod服务的方法...
- python arp 网关_python arp欺骗伪造网关代码详解
- ISO14001环境管理体系问答篇
- graphpad如何换柱状图与折线图能否混合一起_Graphpad Prism 绘制柱状图与散点图共存图...
- 3d游戏设计读书笔记三
- c语言劫持dll写法,[原创]DLL劫持生成器 源码开放(纯WINDOWS SDK)+ 实例分析
- arduino计时器程序
- cordova build android 出错问题汇总
- CK-GW208-EC与汇川PLC配置走EtherCAT通讯指南
热门文章
- BZOJ 2143 飞飞侠(线段树优化建边 / 并查集优化最短路)【BZOJ修复工程】
- 模板 - 输入输出优化
- P2642 双子序列最大和(线性DP)(最大子段和 + 合唱队列)
- 模板 -基础数据结构
- 【牛客每日一题】4.16 逆序对 ( 数学 , 排列组合 ,快速幂 , 快速乘 )
- pytorch元素相乘_PyTorch – 变量和张量之间的元素乘法?
- vue 滑动加载列表 php,通过原生vue添加滚动加载更多功能
- RStudio v1.2.1335 发布,R 语言的集成开发环境
- lib目录和maven dependency目录的jar包冲突
- 我是如何学会爱上 Vim 的