建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的

上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置:

2台Nginx+keepalived互为主备,各自绑定一个公网虚拟IP,提供负载均衡服务,同时工作,当其中一台机器出现故障,请求转移到一台机器负担,对比与主从来说资源利用比较合理,也比较适合目前的架构。

准备:

标配四台服务器[全部搭建完成]

Master1:192.168.102.110 nginx+keepalived[对应我们上篇的master]

Master2:192.168.102.113 nginx+keepalived[对应我们上篇的backup]

VIP-master1:192.168.102.138

VIP-master2:192.168.102.139

Tomcat1:192.168.102.111

Tomcat2:192.168.102.112

1、因为这里是接着Nginx+keepalived主从配置写的,咱们先看一下主从的配置

查看master和backup的Nginx、keepalived配置[目前是主从配置]

Master的keepalived配置

Master的Nginx配置

Backup的keepalived配置

Backup的Nginx配置

2、 把主从配置修改为双主热备

Master对应master1,修改master配置文件

注意看下方注释:

#定义vrrp实例,VI_1 为虚拟路由的标示符,自己定义名称

#keepalived在同一virtual_router_id中priority(0-255)最大的会成为master,也就是接管VIP

#priority最大的主机发生故障后次priority将会接管

vrrp_instance VI_1 {

state MASTER #主服务器,注意这里如果是主从。那么当主priority<从priority,backup是会抢占为master的

interface eth0 #网卡名

virtual_router_id 51 #同一vrrp_instance下主备要相同

priority 100 #如果是主备,优先级要区别

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

#设置VIP,它随着state变化而增加删除,当state为master的时候就添加,当state为backup的时候则删除,由优先级决定

virtual_ipaddress {

#192.168.200.16

#192.168.200.17

#192.168.200.18

192.168.102.138 #vip

}

}

#定义vrrp实例,VI_2 为虚拟路由的标示符,自己定义名称

#keepalived在同一virtual_router_id中priority(0-255)最大的会成为master,也就是接管VIP

#priority最大的主机发生故障后次priority将会接管

vrrp_instance VI_2 {

state BACKUP #从服务器,注意这里如果是主从。那么当主priority<从priority,backup是会抢占为master的

interface eth0 #网卡名

virtual_router_id 52 #同一vrrp_instance下主备要相同

priority 90 #如果是主备,优先级要区别

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

#设置VIP,它随着state变化而增加删除,当state为master的时候就添加,当state为backup的时候则删除,由优先级决定

virtual_ipaddress {

#192.168.200.16

#192.168.200.17

#192.168.200.18

192.168.102.139 #vip

}

}

Backup对应master2,修改backup配置文件。类似同上

3、 测试

使用192.168.102.138

使用192.168.102.139

4、模拟故障

挂掉master1[vip1]

这时不管访问的是vip1[192.168.102.138]还是vip2[192.168.102.139]都将导到vip2上去

测试

现在所有的请求都转移到master2

测试完成。

Nginx系列篇四:Nginx+keepalived搭建一个高可用的双机双主热备的更多相关文章

  1. Keepalived+LVS实现高可用负载均衡双主模式

    LVS是一种集群(Cluster)技术:采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一 ...

  2. Nginx系列篇三:linux中Nginx+keepalived做一个高可用的主从配置

    建议:先阅读搭建Nginx负载均衡之后再看此篇 备注: Nginx+keepalived的高可用有两种方式 一.主从配置 二.双主热备配置[下一篇] 准备: 标配四台服务器 Master:192.16 ...

  3. Nginx系列篇二:linux搭建Nginx负载均衡

    建议先搭建好Nginx环境 可阅读--->Linux中搭建Nginx 1.准备好三台服务器[标配] 一.nginx负载均衡服务器:192.168.102.110,配置好Nginx 二.tomca ...

  4. 使用Keepalived实现Nginx的自动重启及双主热备高可用

    1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...

  5. SpringCloud学习系列之一 ----- 搭建一个高可用的注册中心(Eureka)

    前言 本篇主要介绍的是SpringCloud相关知识.微服务架构以及搭建一个高可用的服务注册与发现的服务模块(Eureka). SpringCloud介绍 Spring Cloud是在Spring B ...

  6. Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

    配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G  系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...

  7. 基于keepalived搭建MySQL高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  8. 阿里云有奖体验:用PolarDB-X搭建一个高可用系统

    体验简介 场景将提供一台配置了CentOS 8.5操作系统和安装部署PolarDB-X集群的ECS实例(云服务器).通过本教程的操作,带您体验如何使用PolarDB-X搭建一个高可用系统,通过直接ki ...

  9. Mysql双主热备+LVS+Keepalived高可用操作记录

    MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...

随机推荐

  1. UUID GUID

    http://baike.baidu.com/link?url=xkck9gR5bzOx0oBKP1qNJwGGq3IO56V4i8cg9zTSpSDMVBMA0F7jr0AdkQTGyk7F0FGj ...

  2. apk程序查找方法调用

    有android killer,现在ida对android的支持等一些方便工具,此篇(关于搜索和修改代码)废弃. 没有好的调试工具下 常用插代码(如果怕影响寄存器值,可以将.locals xxx改多几 ...

  3. 线程相关函数(POSIX线程):

    创建单个线程 #include <pthread.h> // 若成功返回0,出错返回正的Exxx值 int pthread_create(pthread_t *tid, // 每个线程在进 ...

  4. error at ::0 can&#39;t find referenced pointcut pointCutName 错误解决方法

    Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: publi ...

  5. POJ 2892 Tunnel Warfare(树状数组+二分)

    题目链接 二分求上界和下界,树状数组.注意特殊情况. #include <cstring> #include <cstdio> #include <string> ...

  6. 在安卓6.0(及以上)设备上无法获取无线网卡MAC地址的解决方案

    在安卓6.0以下的设备上,通过WifiManager.getConnectionInfo().getMacAddress()即可获取WLAN物理地址, 而在6.0及以上,以此方式获取到的MAC地址为固 ...

  7. js数据类型简单介绍

    JS数据类型 ECMAScript中有5种简单的数据类型:Undefined,Null,Boolean,Number,String.还有一种复杂的数据类型--Object(本质上是由一组无序的名值对组 ...

  8. 织梦CMS被挂马特征汇总

    一.织梦CMS被挂马特征汇总 2013织梦CMS被挂马特征汇总.最近很多朋友反应后台多了几个系统管理员用户:service.spider等,而且自己之前的管理员用户登陆时候会提示用户名不存在.还有朋友 ...

  9. Java 字符串比较小知识

    使用 String.compareTo 方法: compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序). 1.如果字符串相等,返回值0. 2.如果第一个字符和参数的第 ...

  10. Redis使用基本套路

    Redis的数据,通常都是来自于数据库. 存入Redis当中,可以快速的查询.不用每次都关联查询,然后其他处理什么的. 通常可以把一些,不经常变的数据存储其中. 避免数据变动,而Redis缓存数据不变 ...