原文:http://bbs.51cto.com/thread-1021620-1.html

一、简介
不管是Keepalived还是Heartbeat做高可用,其高可用,都是站在服务器脚本去说的高可用,而不是服务的角度。
也就是说,如果服务器DOWN机或者网络出现故障,高可用是可以实现自动切换的。如果运行的服务,比如Nginx挂掉
这些高可用软件是意识不到的,需要自己写脚本去实现服务的切换。

二、安装配置Keepalived

复制内容到剪贴板

代码:

# ./configure
# make
# make install
# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
# cp /usr/local/sbin/keepalived /usr/bin/
# chkconfig --add keepalived 
# mkdir /etc/keepalived/
# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

编辑MASTER的主配置文件(MASTER: 1.1.1.1)

复制内容到剪贴板

代码:

# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {
        script "/opt/monnginx.sh"
        interval 2
        weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass mdnginx
    }
    virtual_ipaddress {
        1.1.1.100
    }
    track_script {
        chk_nginx
  }
}

编辑BACKUP的主配置文件(BACKUP:1.1.1.2)

复制内容到剪贴板

代码:

# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {
        script "/opt/monnginx.sh"
        interval 2
        weight 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass mdnginx
    }
    virtual_ipaddress {
        1.1.1.100
    }
    track_script {
        chk_nginx
  }
}

三、启动服务与脚本编写(主机和备机都要执行)

复制内容到剪贴板

代码:

# service nginx start
# service keepalived start

编写监控Nginx的脚本

复制内容到剪贴板

代码:

# vim /opt/monnginx.sh
#!/bin/bash
# author: honway.liu
# date: 2013-03-15

if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then
        service nginx start
fi
sleep 3
if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then
        service keepalived stop
fi

改进脚本,加上报警功能。

复制内容到剪贴板

代码:

# vim /opt/monnginx.sh

#!/bin/bash
# author: honway.liu
# date: 2013-03-15
IPADDR=$(ip addr show eth0|awk '{print $2}' | sed -n 3p)
contact=(137XXXXXXXX@139.com)
num=${#contact[@]}
function email() {
for ((i=0;i<num;i++));do
        echo "$IPADDR service problem" | mail -s "WARNING" ${contact[i]} -- -f gm100861@gmail.com
done
}

if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then
        service nginx start
fi
email

sleep 3

if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then
        service keepalived stop
email
fi

这里的报警使用的是139邮箱,在139邮箱里面设置有邮件的时候,通知到手机,并且以长短信的方式。
需要开户本机的sendmail服务。

转载于:https://blog.51cto.com/swenzhao/1221682

Keeplived配置Nginx双机高可用【转】相关推荐

  1. linux下配置nginx+keepalived高可用的各种问题以及解决办法

    本人的环境Centos 7 + nginx 1.12.2 + keepalived 1.3.5 nginx 主机 192.168.26.26 备机 192.168.26.126 安装: 在俩台服务器上 ...

  2. Nginx+keepalived 高可用双机热备(主从模式/双主模式)

    基础介绍 负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:l ...

  3. Nginx+keepalived高可用配置实战

    1.整体架构图如下 2.环境准备 今天所配置的是keepalived+nginx 的负载均衡 下载keepalived软件 [root@LB01 tools]# wget http://www.kee ...

  4. 浅入浅出keepalived+nginx实现高可用双机热备

    对应用keepalived+nginx技术实现nginx高可用进行简单的分析,下面是通过对keepalived添加校验nginx存活脚本,监控nginx的状态,应用keepalived的主备模式实现n ...

  5. Keepalived+Nginx实现高可用,反向代理---Keepalived安装及相关配置

    [前言] 在博文<智能一代云平台(十五):Keepalived+Nginx实现高可用,反向代理---Nginx安装及配置>中介绍了Nginx的安装及相关配置的信息,由于篇幅原因不能用一篇博 ...

  6. 分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡

    一.场景需求 二.Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 ...

  7. 双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

    前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构. 架构简介 此架构主要是由ke ...

  8. 构建MFS+Keepalived双机高可用热备方案`

    一.简介 MooseFS(即Moose File System,简称MFS)是一个具有容错性的网络分布式文件系统,它将数据分散存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本,对于访 ...

  9. MySQL共享存储主备模式利用Keepalived实现双机高可用

    简单介绍 先简单说下MySQL主从复制与keepalived模式和MySQL共享存储与Keepalived模式 MySQL共享存储主备模式不同于MySQL主主复制模式,MySQL主主是利用MySQL自 ...

最新文章

  1. Android SurfaceView 黑背景的处理方法
  2. go select 与 for 区别_Go 面试每天一篇(第 102 天)
  3. docker应用到生产环境的前提
  4. 规模化敏捷框架(SAFe)的原则
  5. mac 10.10 apache php,在Mac上10分钟搞定Apache服务器配置
  6. PyTorch框架学习十三——优化器
  7. Java加密与解密的艺术~DigestInputStream
  8. 计算机逻辑判断函数函数知识点,计算机考点条件检测函数IF
  9. 循环不变式(loop invariant)
  10. linux文件界面画面,Linux对比文件,很好用的图形界面
  11. 黑苹果睡眠重启后死机_iPhone 所有机型“死机/卡机”重启方法
  12. chrome设置socket5代理
  13. 行业增长乏力,转型失败案例多,平安银行要转型“对公”?
  14. Mongodb释放内存
  15. 如何自己重装系统win7
  16. 红黑树 原理和算法详细介绍(Java)
  17. C++中的TEXT函数
  18. 【电化学】-物质传递(迁移与扩散)
  19. C#中的多線程-----引自:http://www.daima.com.cn/info/234.htm
  20. fxssvc.exe

热门文章

  1. VTK:可视化算法之IronIsoSurface
  2. VTK:图片之ImageRange3D
  3. VTK:几何对象之PolyLine
  4. OpenCV使用Orbbec Astra 3D相机
  5. C++Addition rule of probabilities概率加法法则算法(附完整源码)
  6. C++极值minmax最大值最小值算法(附完整源码)
  7. c++引用专题之普通引用
  8. python list去重_Python中实用却不常见的小技巧
  9. Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)
  10. Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限