15.1. 传统的高可用思路

tomcat的高可用的思路,是在tomcat集群前面加一层负载服务nginx。如下图

这种做法,解决了tomcat的高可用问题。但是引入了前面的负载机器的高可用问题(Nginx如果挂了,玩完)

如果nginx沿用此思路,总会有一个最前端是单机的,存在宕机玩完的风险(鸡生蛋蛋生鸡无穷尽)

15.2. lvs 思想解决高可用问题

如上图,由服务器集群虚拟出来一台 虚拟网关vip(不真实存在,自然不存在宕机问题),

此vip由两台机器共同协商生成。当有一台机器宕机时,另一台机器一样能维持vip。这保证了,只要两台机器不同时宕机,vip就存在

15.3. keepalived配置LVS过程

前提

1.关闭selinux,打开/etc/sysconfig/selinux设置其中值  à SELINUX=disabled

2.安装必须的依赖包

yum -y install libnl libnl-devel libnfnetlink-devel

keepalived安装

下载源码包--不能使用yum方式安装(有bug) --wget https://www.keepalived.org/software/keepalived-1.3.4.tar.gz

配置(指定安装目录和配置目录,否则文件太散乱) --./configure --prefix=/usr/local/keepalived --sysconf=/etc

make && make install

keepalived主机配置

打开/etc/keepalived/keepalived.conf,只需要配置如下一段。(其它是多余配置,删除)

启动keepalived,查看机器ip地址,可发现多出一个244.200的ip

此时,使用原ip地址244.253能打开的页面,使用244.200也能打开

keepalived从机配置

从机配置与主机过程完全一样,配置文件内以下标识id与优先级稍作变化即可

启动从机的keepalived后,可发现其ip地址无变化

keepalived校验LVS效果

1、此时,杀掉主机上的keepalived,244.200的ip将从主机上消失。而出现的从机的ip中

2、再次启动主机的keepalived,244.200的ip将被主机重新夺回

3、此效果是单主单备方式。备机资源有一定的浪费。可以重复前面的动作,虚拟出第二个ip,将主从机优先级颠倒,从而利用起备机服务

keepalived监控服务软件

以上操作中,keepalived很好的实现了LVS功能,即集群机器共同虚拟一个vip,并实现在集群中自动漂移。

但假如物理机状况良好,并不能保障其上运行的服务软件ok,因此需要借助keepalived来监控服务软件。

a、使用keepalived来监控nginx

编辑一个sh监控脚本,sh脚本:

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`       #统计nginx进程是否存在

if [ $A -eq 0 ];then                            #为0,表明nginx停止了

/usr/local/nginx/sbin/nginx                #尝试重启nginx

if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则keepalived自杀,进行VIP转移

killall keepalived    #杀掉,vip就漫游到另一台机器

fi

fi

b、在配置文件中加入以下两处配置:

c、重启keepalived,测试监控效果,如下图操作:

nginx已变成不死鸟

nginx高可用的更多相关文章

  1. keepalived对nginx高可用演练脚本

    keepalived对nginx高可用演练脚本 参考文章:http://deidara.blog.51cto.com/400447/302402/ .安装nginx.keepalived.epel-r ...

  2. Keepalived保证Nginx高可用配置

    Keepalived保证Nginx高可用配置部署环境 keepalived-1.2.18 nginx-1.6.2 VM虚拟机redhat6.5-x64:192.168.1.201.192.168.1. ...

  3. linux中keepalived实现nginx高可用配置

    linux中keepalived实现nginx高可用配置 安装keepalived 运行如下命令即可 tar -zxvf keepalived-2.0.8.tar.gz -C /usr/src cd ...

  4. 配置keepalived支持nginx高可用

    实验环境 序号 主机名 IP地址 1 nginx1 192.168.204.11 2 nginx2 192.168.204.12 安装nginx 安装nginx yum install -y epel ...

  5. 面试中的nginx高可用高并发!

    本文转自:91博客:原文地址:http://www.9191boke.com/439923471.html 面试题: nginx高可用?nginx 是如何实现并发的?为什么nginx不使用多线程?ng ...

  6. 001/Nginx高可用模式下的负载均衡与动静分离(笔记)

    Nginx高可用模式下的负载均衡与动静分离 Nginx(engine x)是一个高性能的HTTP和反向代理服务器,具有内存少,并发能力强特点. 1.处理静态文件.索引文件以及自动索引:打开文件描述符缓 ...

  7. Nginx(四):Keepalived+Nginx 高可用集群

    Keepalived+Nginx 高可用集群 (主从模式) 集群架构图 安装keepalived [root@localhost ~]# yum install -y keepalived 查看状态 ...

  8. Docker下配置KeepAlive支持nginx高可用

    案例子任务一.安装配置keepalived 步骤1:使用nginx镜像生成nginx-keep镜像 1) 启动nginx容器并进入 docker run -d --privileged nginx / ...

  9. 3.keepalived+脚本实现nginx高可用

    标题 : 3.keepalived+脚本实现nginx高可用 目录 : Nginx 序号 : 3 else exit 0 fi else exit 0 fi - 需要保证脚本有执行权限,可以使用chm ...

  10. Keepalived+Nginx高可用实例

    Keepalived+Nginx高可用实例 注意事项: 1.VIP不需要在服务器网络配置文件中配置. 2.nginx主不可用时,需要kill掉nginx主的keepalived服务,这样才可以实现VI ...

随机推荐

  1. vue中methods互相调用的方法

    a:function(goods) { this.aa= []; this.bb= 0; this.cc= 0; }, b:function(){ if(this.bbb!= 0){ this.aa= ...

  2. C#LeetCode刷题之#48-旋转图像(Rotate Image)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3668 访问. 给定一个 n × n 的二维矩阵表示一个图像. 将 ...

  3. C#LeetCode刷题之#700-二叉搜索树中的搜索(Search in a Binary Search Tree)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4102 访问. 给定二叉搜索树(BST)的根节点和一个值. 你需要 ...

  4. sql 语句(精品)

    GROUP BY: select avg(latency),projectName,data_trunc('hour'm\,_time_) as hour group by projectName,h ...

  5. Xor 思维题

    Xor 思维题 题目描述 小\(Q\)与小\(T\)正在玩一棵树.这棵树有\(n\)个节点,编号为 \(1\),\(2\) \(3...n\),由\(n-1\)条边连接,每个节点有一个权值\(w_i\ ...

  6. bluecms v1.6 代码审计

    0x01 使用seay源代码审计系统进行审计 扫描到了很多个可疑漏洞,不过工具都有一定的误报,下面我们就逐个进行验证 0x02 /ad_js.php SQL注入漏洞 查看源码,我们发现程序通过GET方 ...

  7. vob文件转mkv

    下载了一部片子,是所谓的dvd原盘,就是用软件将dvd碟片rip下来,视频文件是一堆vob文件.觉得这片子没必要看原盘,想压缩成mkv以减小体积,同时保持合适的清晰度. 首先想到用handbrake这 ...

  8. vue a标签下载图片文档显示下载失败

    解决:把所要下载的文件放到static文件下,具体原因-静态文件放在static内,否则webpack会打包.

  9. markdown插入表情

    找到了一个网站https://www.webfx.com/tools/emoji-cheat-sheet/,直接把表情对应的符号复制粘贴就行了. 比如:joy:显示为 部分截图:

  10. Antd cracoTs Js 配置流程

    JS:文档:0.1.4 配置 js 环境.note链接:http://note.youdao.com/noteshare?id=e32fa75c1baa014b5819fa5e22887dbc& ...