一.Keepalived

Keepalived是保证集群高可用的服务软件。网络中优先级高的节点为master负责响应VIP的ARP包,将VIP和MAC地址映射关系告诉网络内其他主机,还会以多播的形式向网络中发送VRRP通告,告知自己的优先级。backup节点只负责处理master发出的多播包,当发现master的优先级没自己高,或者没收到master的VRRP通告时,backup将自己切换到master状态。

二.环境搭建

环境:QEMU-KVM、客户机Debian(9.4.0)
虚拟机QEMU-KVM安装:虚拟化技术QEMU-KVM入门

1.使用临时快照创建两台虚拟机,以下操作两台虚拟机都需要执行
faramita2016@linux-l9e6:~> qemu-kvm -cpu host -m -hda vdisk.img -net nic -net bridge,br=br0 -snapshot -nographic

2.设置虚拟机静态IP

root@debian:~# cat /etc/network/interfaces
# The primary network interface
allow-hotplug ens3
#iface ens3 inet dhcp
iface ens3 inet static
address 10.0.0.3 // 设置ip
netmask 255.0.0.0
gateway 10.0.0.1
hwaddress ether ::::: // 设置mac地址

3.激活网卡IP

root@debian:~# ip addr del 10.0.0.8/ dev ens3    // 删除客户机原有IP
root@debian:~# ifdown ens3
root@debian:~# ifup ens3

4.安装Nginx、Keepalived
root@debian:~# apt-get install -y nginx keepalived

5.修改/var/www/html/index.nginx-debian.html文件,添加当前虚拟机ip,用于标记实际响应的服务器

root@debian:~# vi /var/www/html/index.nginx-debian.html
……
<h1>Welcome to nginx! 10.0.0.3</h1>
……

三.软件配置

主节点虚拟机(10.0.0.3),备用节点虚拟机(10.0.0.4),虚拟IP(10.0.0.100)
1.在主节点虚拟机,编辑/etc/keepalived/keepalived.conf文件

root@debian:~# cat /etc/keepalived/keepalived.conf
global_defs {
router_id RI_1 // 标识当前keepalived节点
} vrrp_script chk_nginx {
script "/root/chk_nginx.sh" // 定义监控脚本
interval // 执行监控脚本的闹中间隔时间
} vrrp_instance VI_1 {
state MASTER // 设置节点为主节点,节点的初始状态
interface ens3 // 设置绑定虚拟ip的网络接口
virtual_router_id // VRRP组名,指明节点同属一个组
priority // 节点优先级,主节点应当高于备用节点
advert_int // 组播信息发送间隔 #nopreempt // 禁止抢占服务,只对备用节点生效,主节点根据priority优先级进行抢占,不受nopreempty控制 authentication {
auth_type PASS // 设置认证方式
auth_pass // 密码
} virtual_ipaddress {
10.0.0.100/ // 设置vip
} track_script { // 调用监控脚本
chk_nginx
}
}

2.在备用节点虚拟机,编辑/etc/keepalived/keepalived.conf文件,除以下项,其它与主节点相同

    state BACKUP    // 设置节点为主节点,节点的初始状态
priority // 节点优先级

3.在所有节点执行,创建监控脚本,编辑/root/chk_nginx.sh文件,用于监控nginx进程的运行,及关闭keepalived服务

root@debian:~# vi /root/chk_nginx.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq ]
then
/etc/init.d/keepalived stop
fi

四.验证服务

1.主节点虚拟机,启动nginx和keepalived服务

root@debian:~# /etc/init.d/nginx start
root@debian:~# /etc/init.d/keepalived start


执行ip a命令,主节点网卡ens3已绑定vip(10.0.0.100)

2.在备用节点虚拟机,启动nginx和keepalived服务

root@debian:~# /etc/init.d/nginx start
root@debian:~# /etc/init.d/keepalived start


执行ip a命令,备用节点网卡ens3未绑定vip(10.0.0.100)

3.宿主机浏览器访问http://10.0.0.100

出现10.0.0.3的网页,说明keepalived服务已生效,vip已绑定主节点

4.在主节点虚拟机,关闭nginx服务,模拟宕机
root@debian:~# /etc/init.d/nginx stop 

执行ip a命令,主节点网卡ens3未绑定vip(10.0.0.100)

5.在备用节点虚拟机,查询ip

执行ip a命令,备用节点网卡ens3已绑定vip(10.0.0.100)

6.宿主机浏览器访问http://10.0.0.100

出现10.0.0.4的网页,说明keepalived服务已生效,vip已绑定备用节点

Nginx+Keepalived双机热备的更多相关文章

  1. Nginx+keepalived双机热备(主主模式)

    之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...

  2. Nginx+keepalived 双机热备(主主模式)

    之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...

  3. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  4. nginx + keepalived 双机热备

    序 双机热备是指两台机器都在运行,但并非两台机器同时在提供服务. 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短. keepalived的工作原理是VRRP—— ...

  5. Nginx+keepalived双机热备(主从模式)

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

  6. Nginx+keepalived 双机热备(主从模式)

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

  7. Nginx+keepalived双机热备(默认路径安装)- 基础篇

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

  8. Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

    原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...

  9. Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)-转帖篇

    原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...

随机推荐

  1. MyISAM和InnoDB区别详解

    MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点 ...

  2. MySQL5.7: sql script demo

    -- MyISAM Foreign Keys显示不了外键,MyISAM此为5.0 以下版本使用 InnoDB 为5.0以上版本使用 drop table IF EXISTS city; CREATE ...

  3. 正则去除html字符串中的注释、标签、属性

    var str = '<!-- 注释1 --><h1 style="color:#00ff00;text-align: center;">ProsperLe ...

  4. 2018-10-04 [日常]用Python读取word文档中的表格并比较

    最近想对某些word文档(docx)的表格内容作比较, 于是找了一下相关工具. 参考Automate the Boring Stuff with Python中的word部分, 试用了python-d ...

  5. 二路归并算法的java实现

    “归并”的含义是将两个或者两个以上的有序表组合成一个新的有序表. 假设待排序表含有n个元素,则可以看成是n个有序的子表,每个子表的长度为1,然后两两归并,得到(n/2)或者(n/2+1)个长度为2或1 ...

  6. Ubuntu-18.04安装Docker

    Docker 介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...

  7. ELk(Elasticsearch, Logstash, Kibana)的安装配置

    目录 ELk(Elasticsearch, Logstash, Kibana)的安装配置 1. Elasticsearch的安装-官网 2. Kibana的安装配置-官网 3. Logstash的安装 ...

  8. Python笔记(十六):迭代器

    (一)iterable对象和Iterator对象的区别 iterable对象(可迭代的对象):可以使用for循环,例如:字符串.列表 .字典 .集合等 Iterator对象(迭代器):除了可以用for ...

  9. margin塌陷与BFC总结

    只给出关键点,具体效果不做太多示范,真正的东西只有自己试了才能记住 BFC BFC触发: 1.position:absolute/fixed 2.float:left/right 3.display: ...

  10. Spark算子代码实践

    package com.dingxin.datainit import org.apache.log4j.{Level, Logger} import org.apache.spark.sql.Spa ...