准备工作:

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高可用方案相关推荐

  1. 解决方案:Nginx高可用方案

    解决方案:Nginx高可用方案 关键词 KeepAlived(主服务器 和 备份服务器 故障时 IP 瞬间无缝交接) VRRP协议(路由器组,提供虚拟IP,一个master和多个backup,组播消息 ...

  2. nginx高可用方案:keepalived+nginx vip 动态位移

    文章目录 一.部署总览+常用命令 1. 部署总览 2. 常用命令 二.软件安装配置 2.1. 安装keepalived 2.2. 安装nginx 2.3. 配置静态文件 三.测试 3.1. 启动ngi ...

  3. Nginx 高可用秘籍

    什么是高可用? 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 如果一个系统能够一直提供服务,那么这个可用性 ...

  4. mysql主主和F5高可用_MYSQL 主主热备高可用方案与实现

    咱们选择主主互热备作生产环境MYSQL高可用方案,该方案的优势是在压力大的时候,仍然能够经过设置负载均衡来作业务分发.并且最重要的是配置简单,两份配置都同样,改个IP就能够 就喜欢简单的东西.mysq ...

  5. 算法高级(15)-LVS的负载均衡策略及LVS+KeepAlived+Nginx实现高可用方案

    前面讲的nginx负载均衡,是属于网络七层负载,今天讲另外一种负载均衡技术LVS,它是基于网络四层进行负载,性能很好,通常在大型项目中,我们会同时使用四层和七层负载. 一.LVS简介 LVS是Linu ...

  6. 全网唯一的、DIY的Prometheus高可用方案,生产未上,测试先行。

    写在开篇 关于prometheus的高可用方案,经过笔者不断的研究.对比.和搜索,发现不管是官方.还是各大搜索引擎搜索出来的方案,都不符合笔者的需求.因此,笔者自己设计了一套prometheus主备的 ...

  7. 高可用系列文章之三 - NGINX 高可用实施方案

    前文链接 高可用系列文章之一 - 概述 - 东风微鸣技术博客 (ewhisper.cn) 高可用系列文章之二 - 传统分层架构技术方案 - 东风微鸣技术博客 (ewhisper.cn) 四 NGINX ...

  8. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

  9. MySQL高可用方案-PXC环境部署记录

    之前梳理了Mysql+Keepalived双主热备高可用操作记录,对于mysql高可用方案,经常用到的的主要有下面三种: 一.基于主从复制的高可用方案:双节点主从 + keepalived 一般来说, ...

最新文章

  1. react骨架屏自动生成_用纯 DOM 的方式结合 Puppeteer 自动生成网页骨架屏
  2. 代码生成工具Database2Sharp功能功能完善及更新
  3. 【Linux】1.shell各个命令
  4. 校验用户画像的准确性
  5. 如何c51和mdk共存兼容_电磁兼容入门篇之基础知识(一)
  6. CF思维联系–CodeForces -224C - Bracket Sequence
  7. 2_RabbitMQ工作模式_Work queues_Publish/Subscribe_Routing_Topics_HeaderRpc
  8. 使用XLocalizer进行ASP.NET Core本地化
  9. JAVAEWEB实现文件的上传案例
  10. 一份神奇的礼物(1)
  11. 转基因粮食的毒性,首先是因为农药
  12. linux系统如何启动rpcbind,在Linux系统上关闭rpcbind、postfix、rpc.statd、hpiod服务的方法...
  13. python arp 网关_python arp欺骗伪造网关代码详解
  14. ISO14001环境管理体系问答篇
  15. graphpad如何换柱状图与折线图能否混合一起_Graphpad Prism 绘制柱状图与散点图共存图...
  16. 3d游戏设计读书笔记三
  17. c语言劫持dll写法,[原创]DLL劫持生成器 源码开放(纯WINDOWS SDK)+ 实例分析
  18. arduino计时器程序
  19. cordova build android 出错问题汇总
  20. CK-GW208-EC与汇川PLC配置走EtherCAT通讯指南

热门文章

  1. BZOJ 2143 飞飞侠(线段树优化建边 / 并查集优化最短路)【BZOJ修复工程】
  2. 模板 - 输入输出优化
  3. P2642 双子序列最大和(线性DP)(最大子段和 + 合唱队列)
  4. 模板 -基础数据结构
  5. 【牛客每日一题】4.16 逆序对 ( 数学 , 排列组合 ,快速幂 , 快速乘 )
  6. pytorch元素相乘_PyTorch – 变量和张量之间的元素乘法?
  7. vue 滑动加载列表 php,通过原生vue添加滚动加载更多功能
  8. RStudio v1.2.1335 发布,R 语言的集成开发环境
  9. lib目录和maven dependency目录的jar包冲突
  10. 我是如何学会爱上 Vim 的