根据真实生产环境 总结。

硬件:共计2台Linux服务器  76和77  每台服务器都安装 Nginx  Keepalive  Tomcat
80作为虚拟ip,负责对外连接。   78和79是两台mysql数据库,读写分离。

效果:如果一台服务器产生故障,另一台马上接替服务

重点:在于keepalive心跳的配置

安装过程此处省略……

 
 
安装完成后首先配置 Keepalive
 
1.Keepalive  
两台服务器端keepalived.conf内容都为如下,都设置为backup,不抢占

(76)主机

! Configuration File for keepalived
 
global_defs {
   notification_email {
     xxxx@139.com           切换等操作时  email通知邮件地址
   }
   notification_email_from root@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id HTTP_HA
}
 
 
vrrp_sync_group VG_1 {                    同步组设置
  group {
    VI_1
  }
  #notify_master /home/notify_master.sh
  #notify_backup /home/notify_backup.sh
  #notify_fault  /home/notify_fault.sh
}
 
vrrp_instance VI_1 {          实例设置
    preempt_delay 300       抢占延迟
    state BACKUP              实例初始状态(确定主备)
    #smtp_alert
    interface eth0                 实例节点固有IP(非VIP)的网卡,用来发VRRP包
    virtual_router_id 51        设置VRID这里非常重要  相同的VRID为一个组他将决定多播的MAC地址
    advert_int 1                     检查间隔默认为1秒
    authentication {
        auth_type PASS           认证方式可以是PASS或AH两种认证方式
        auth_pass 1111            认证密码
    }
 
    nopreempt     # backup server comment it   (从机 注释此参数)
    priority 150  # backup server change to 100      用来选举master的数字越大,优先级越高
    virtual_ipaddress {                                                   设置虚拟IP
         10.0.0.80/24 dev eth0
    }
}
 
 
(77)从机

! Configuration File for keepalived
 
global_defs {
   notification_email {
     xxxx@139.com           切换等操作时  email通知邮件地址
   }
   notification_email_from root@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id HTTP_HA
}
 
 
vrrp_sync_group VG_1 {                    同步组设置
  group {
    VI_1
  }
  #notify_master /home/live800/working/keepalived/notify_master.sh
  #notify_backup /home/live800/working/keepalived/notify_backup.sh
  #notify_fault  /home/live800/working/keepalived/notify_fault.sh
}
 
vrrp_instance VI_1 {          实例设置
    preempt_delay 300       抢占延迟
    state BACKUP              实例初始状态(确定主备)
    #smtp_alert
    interface eth0                 实例节点固有IP(非VIP)的网卡,用来发VRRP包
    virtual_router_id 51        设置VRID这里非常重要  相同的VRID为一个组他将决定多播的MAC地址
    advert_int 1                     检查间隔默认为1秒
    authentication {
        auth_type PASS           认证方式可以是PASS或AH两种认证方式
        auth_pass 1111            认证密码
    }
 
    #nopreempt     # backup server comment it      (从机 注释此参数)
    priority 100  # backup server change to 100      用来选举master的数字越大,优先级越高
    virtual_ipaddress {                                                 设置虚拟IP 可以设置多个
         10.0.0.80/24 dev eth0
    }
}
 
 
 
 
2.Nginx
这里只列出主要几行配置
 
(10.0.0.76)(10.0.0.77)
     upstream TomcatServer {

server 127.0.0.1:8080 max_fails=0 fail_timeout=10s;
        }
server {server_name  localhost;
listen 80;
include proxy.conf;
location / {
proxy_pass http://TomcatServer;
}
location /ns {include stub_status.conf;}
}
}

 
 
 
3.Tomcat
不必做特殊设置
 

2Nginx+keepalive+2tomcat 故障转移的更多相关文章

  1. keepalive配置mysql自动故障转移

    keepalive配置mysql自动故障转移 原创 2016年02月29日 02:16:52 2640 本文先配置了一个双master环境,互为主从,然后通过Keepalive配置了一个虚拟IP,客户 ...

  2. 高并发应用场景下的负载均衡与故障转移实践,AgileEAS.NET SOA 负载均衡介绍与实践

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  3. 基于MGR+Atlas的读写分离尝试,以及MGR+Keepalived+Atlas自动故障转移+读写分离设想

    目的是尝试altas的读写分离,现有一套搭建好做测试的MGR(单主),于是就腿搓绳,在MGR基础上搭建altas. 复制环境准备 读写分离理论上讲,跟复制模式没有关系,atlas负责的是重定向读写,至 ...

  4. MySQL高可用方案--MHA部署及故障转移

    架构设计及必要配置 主机环境 IP                 主机名             担任角色 192.168.192.128  node_master    MySQL-Master| ...

  5. mongodb集群故障转移实践

    简介 NOSQL有这些优势: 大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制. 高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向 ...

  6. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  7. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    原文地址:  http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...

  8. 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法

    非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...

  9. SQL Server 2012故障转移的looksalive check和is alive check

    什么是looksalive check和is alive check SQL Server故障转移集群是建立在windows集群服务上的一种热备的高可用方案.在集群运行过程中,windows集群服务定 ...

随机推荐

  1. Ambari下安装oozieUI界面无法访问问题

    前言: 其他集群管理工具安装oozie和手动编译安装oozie,关于oozie的UI界面无法访问的问题,大致和该方法类似. 找到下面4步骤里的视图显示的目录,有一个ext-2.2软链指向的路径 lrw ...

  2. JS的var和let的区别(详细讲解)

    let是ES6新增的,它主要是弥补var的缺陷,你也可以把let看做var的升级版.下面我就来详细讲讲var和let的区别 相同点: var和let都有函数级作用域 不同点: (1)var是全局作用域 ...

  3. STM321的SPI驱动遇到的一个坑!!

    最近在做项目要用到FATFS文件驱动和SD卡驱动,SD卡驱动我用的是SPI的通信方式,在挂载文件系统是总是挂在失败了,花了一天时间反复检查,才发现SPI在接收时候卡死: 为了寻找问题的原因,整个人都快 ...

  4. Java 使用Scanner时的NoSuchElementException异常

    做实验时设计了一个类,在类中的两个不同函数中分别创建了两个Scanner对象,并且在各个函数的结尾使用了close()方法,结果在运行时产生了NoSuchElementException异常. 实验的 ...

  5. 阿望教你用vue写扫雷(超详细哦)

    前言 话说阿望还在大学时,某一天寝室突然停网了,于是和室友两人不约而同地打开了扫雷,比相同难度下谁更快找出全部的雷,玩得不亦乐乎,就这样,扫雷伴我们度过了断网的一周,是整整一周啊,不用上课的那种,可想 ...

  6. 世界上最流行的版本控制系统——Git

    版本控制系统,也就是VCS(Version Control System),可以说是程序员必备的工具.那么它到底是什么,有什么作用呢? 举个例子,如果你想查看你所开发的软件在一个月之前的模样,同时还想 ...

  7. kubernetes concepts -- Pod Lifecycle

    Pod Lifecycle This page describes the lifecycle of a Pod. Pod phase A Pod’s status field is a PodSta ...

  8. Codeforces I Wanna Be the Guy 题解

    这道题非常简单,有两种做法: 1. 用一个数组标记是不是每个关卡小X或小Y都可以通过 2. 用set储存小X和小Y能够通过的关卡(set有去重功能),最后判断set的长度是否等于n 因为楼上已经有第一 ...

  9. Promise.finally

    const Gen = (time) => { return new Promise((resolve, reject) => { setTimeout(function () { if( ...

  10. [bzoj1070] [洛谷P2053] [SCOI2007] 修车

    Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同 的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序, ...