1.准备俩台虚拟机,一台主机,一台备机

我这里模拟的是

主机ip: 192.168.42.66  masternginx

备机ip: 192.168.42.77  slavenginx

虚拟ip: 192.168.42.11

  具体步骤:

   2.1 将keepalived上传到linux系统当中
        2.2 cd /usr/local目录
        2.3 tar -zxvf keepalived-xxxxxxxxx
        2.4 切换到解压目录
        2.5 yum install -y openssl openssl-devel
        2.5 ./configure --prefix=/usr/local/keepalived 编译,将编译文件放到/usr/local/keepalived
        2.6 make
        2.7 make install
        2.8 在/etc/keepalived  创建目录:  mkdir /etc/keepalived
        2.9 cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
        2.10 cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
        2.11 cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
        2.12 ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
        2.13 ln -s /usr/local/keepalived/sbin/keepalived/sbin/
        2.14 将nginx启动脚本和keepalived.conf配置上传到/etc/keepalived
        2.15 主机:修改keepalived.conf配置文件
            interface 配置成与主机相同的网络  ip  a  
            mcast_src_ip 配置成自己机器的IP
            virtual_ipaddress {
                192.168.42.11 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。   
            }

完整配置:

! Configuration File for keepalived

vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
interval #检测时间间隔
weight - #如果条件成立的话,则权重 -
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state MASTER #来决定主从
interface ens33 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
virtual_router_id # 虚拟路由的 ID 号, 两个节点设置必须一样
mcast_src_ip 192.168.42.66 #填写本机ip
priority # 节点优先级,主要比从节点优先级高
nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int # 组播信息发送间隔,两个节点设置必须一样,默认 1s
authentication {
auth_type PASS
auth_pass
}
# 将 track_script 块加入 instance 配置块
track_script {
chk_nginx #执行 Nginx 监控的服务
} virtual_ipaddress {
192.168.42.11 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
}

2.16 启动keepalived

  

   这里如果报错:Job for keepalived.service failed because the control process exited with error code. See "systemctl status keepalived.service" and "journalctl -xe" for details.

   那么我们需要修改软连接配置
            解决办法:rm /usr/sbin/keepalived
                      ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
        
        2.17 备机keepalived.conf    
            state  BACKUP  备机
            interface 配置成与主机相同的网络  ip  a  
            mcast_src_ip 配置成自己机器的IP
            priority 90  这里备机的权重设为90比主机低,主机宕机时权重-20,就切换到了备机
            virtual_ipaddress {
                192.168.42.11  # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。         
            }

完整配置:

! Configuration File for keepalived

vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
interval #检测时间间隔
weight - #如果条件成立的话,则权重 -
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state BACKUP #来决定主从
interface ens33 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
virtual_router_id # 虚拟路由的 ID 号, 两个节点设置必须一样
mcast_src_ip 192.168.42.77 #填写本机ip
priority # 节点优先级,主要比从节点优先级高
nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int # 组播信息发送间隔,两个节点设置必须一样,默认 1s
authentication {
auth_type PASS
auth_pass
}
# 将 track_script 块加入 instance 配置块
track_script {
chk_nginx #执行 Nginx 监控的服务
} virtual_ipaddress {
192.168.42.11 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
}

  

这里配置完成后,主机和备机都以192.168.42.11作为虚拟ip

当我们访问虚拟ip时,它就会为我们分发请求,默认找主机

先来看一下主机和备机的效果

主机:

 备机:

接着我们访问虚拟ip,在主机备机同时存活的情况下默认访问主机

这里从虚拟机中的ip中也可以看出来

命令:ip a

主机:

 备机:

这时候我们模拟主机宕机

命令:service keepalived stop

虚拟IP也转到了备机上

再在网页访问虚拟ip

也是切换到了备机上

这时再将主机重启

命令:service keepalived start

我们的主机又回来了

如果想模拟nginx宕机,需要我们给.sh脚本赋权

脚本如下

如果你是 root 登陆的话(不是的话,切换到 root 用户,对*.sh 赋可执行的权限)
找到你脚本的文件夹
chmod 777 *.sh
赋予权限
or
chmod +x *.sh

配置好后就会每2秒检测nginx是否存活,不存活则自动重启nginx,(配置了这里下一次就不需要启动nginx,直接启动keepalived就可以了)

我们也可以设置keepalived开机自启

命令:

chkconfig keepalived on

至此,keepalived的大致配置结束

即实现了服务的高可用!

keepalived高可用工具的更多相关文章

  1. Nginx之keepalived高可用工具

    1.创建两台虚拟机,分别为主机和从机,区别两台虚拟机的IP地址 2. 将keepalived上传到linux系统当中 3. cd /usr/local目录 4. tar -zxvf keepalive ...

  2. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  3. 高可用群集HA介绍与LVS+keepalived高可用群集

    一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅 ...

  4. RabbitMQ集群安装配置+HAproxy+Keepalived高可用

    RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...

  5. 1. lvs+keepalived 高可用群集

    一. keepalived 工具介绍 1.专为lvs 和HA 设计的一款健康检查工具 2.支持故障自动切换 3.支持节点健康状态检查 二.  keepalived 实现原理剖析 keepalived ...

  6. Linux(13):期中架构(5)--- 前端部分:keepalived高可用 & HTTPS & iptables防火墙

    keepalived 高可用集群 1. keepalived服务概念说明 # 1.1 keepalived软件的作用? Keepalived软件起初是专为LVS负载均衡软件设计的, 用来管理并监控LV ...

  7. rabbitmq+haproxy+keepalived高可用集群环境搭建

    1.先安装centos扩展源: # yum -y install epel-release 2.安装erlang运行环境以及rabbitmq # yum install erlang ... # yu ...

  8. Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)

    目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...

  9. 第十九章 keepalived高可用

    一.keepalived高可用 1.什么是高可用 一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的. 2.高可用使用的工具 1 ...

随机推荐

  1. html5之table嵌入form表单布局(务必注意:table标签必须在form表单内部,不能再form表单外部!)

    切记:用table标签来布局form表单元素,table标签必须放在form表单内部,否则可能会出现各种bug 原文地址:https://blog.csdn.net/weixin_43343144/a ...

  2. centos7.x中安装SQL Server

    本文内容是采集的好几位博主的博文进行的一个整合,内容更为精准和详尽,以下是我参照的几篇博文地址: 微软官方文档:https://docs.microsoft.com/zh-cn/sql/linux/s ...

  3. [20200211]使用DBMS_SHARED_POOL.MARKHOT与sql_id的计算.txt

    [20200211]使用DBMS_SHARED_POOL.MARKHOT与sql_id的计算.txt --//以前写的,使用DBMS_SHARED_POOL.MARKHOT标记热的sql_id,这样相 ...

  4. SQL中的事务ACID

    概述: 事务是由一系列语句构成的逻辑工作单元.事务和存储过程等批处理有一定程度上的相似之处, 通常都是为了完成一定业务逻辑而将一条或者多条语句“封装”起来,使它们与其他语句之间出现一个逻辑上的边界,并 ...

  5. 清北学堂—2020.1提高储备营—Day 2 afternoon(线段树、树状数组)

    qbxt Day 2 afternoon --2020.1.18 济南 主讲:李佳实 目录一览 1.线段树 2.二叉搜索树(略过) 3.树状数组 总知识点:基础数据结构(本人初学感觉好难) 一.线段树 ...

  6. 简单聊聊CSS中的3D技术之“立方体”

    简单聊聊CSS中的3D技术之“立方体” 大家好,我是今天的男一号,我叫小博主. 今天来聊一下我在前端“逆战班”学习中遇到的颇为有趣的3D知识.前端学习3周,见识稀疏,在下面的分享中如有不对的地方请大家 ...

  7. CSS3中新增的对文本和字体的设置

    文字阴影 text-shadow: 水平偏移 垂直偏移  模糊 颜色 兼容性:IE10+ <!DOCTYPE html> <html lang="en" mani ...

  8. win10自带邮箱如何使用?win10自带邮箱如何同步qq邮箱邮件?

    win10自带邮箱如何使用? 相信很多小伙伴在登录win10自带的邮箱登录QQ邮箱时,显示同步失败或者登录超时,但又找不到相关的资料,下面是我自己邮箱的操作流程,小伙伴可以尝试一下,有什么问题留言即可 ...

  9. 剑指offer-面试题39-数组中出现次数超过一半的数字-快速排序

    /* 题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输 ...

  10. [Python]PyCharm中%matplotlib inline报错

    %matplotlib作用 是在使用jupyter notebook 或者 jupyter qtconsole的时候,才会经常用到%matplotlib,也就是说那一份代码可能就是别人使用jupyte ...