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. vue循环语句

    循环使用 v-for 指令. v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名. v-for 可以绑定数据到数组来渲染 ...

  2. jdk-8u241各系统版本

    今天下载jdk8的时候汇总了linux/mac/windows操作系统的安装包 链接: https://pan.baidu.com/s/105wtrimc1liThGxsZIv7-A 密码: v8lc ...

  3. PMP--1.6 项目经理

    本节都是理论的东西,可以在管理没有思路的或者管理陷入困境的时候当做提升或解决问题的思路来看. 一.项目经理 1. 项目经理.职能经理与运营经理的区别 (1)职能经理专注于对某个职能领域或业务部门的管理 ...

  4. Lua实现的八皇后问题

    来自<Lua程序与设计>第二节- 八皇后问题 输出所有解的解法 书中提供的源代码,加注了自己的注释. N = 8 --[[ N为棋盘规模 a为一维数组,保存第i个皇后所在的列数 ]] -- ...

  5. PostgreSQL内核学习笔记十一(索引)

    Index Scan涉及到两部分的内容Heap Only Tuple和index-only-scan. 什么是Heap Only Tuple(HOT)? 例如:Update a Row Without ...

  6. SQL Server无法连接到服务器 标题: 连接到服务器 ------------------------------ 无法连接到 DESKTOP-J6I1UIC\SQLEXPRESS1。 ------------------------------ 其他信息: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。

    解决方案: 打开 SQL server 配置管理器 选择 SQL server 服务,找到服务器,右键启动

  7. composer封装dd函数

    1.安装composer,本人用的phpstudy,打开php扩展php_openssl 2.切换到www目录下 cmd 命令 composer 第一个就是我们要找的 3.运行composer req ...

  8. Web项目运行时tomcat服务器启动失败

    在实现项目的过程中,tomcat服务器启动失败的情况本人遇到了三种: 1.tomcat服务器的端口被占用. 可能的原因:a.服务器已经启动的时候你又一次启动了服务器 b.别的服务占用了服务器的端口(一 ...

  9. Lombok 详解

    简介 lombok是一个编译级别的插件,它可以在项目编译的时候生成一些代码.通俗的说,lombok可以通过注解来标示生成getter settter等代码. 引入 创建gradle项目 compile ...

  10. scrapy框架综合运用 爬取天气预报 + 定时任务

    爬取目标网站: http://www.weather.com.cn/ 具体区域天气地址: http://www.weather.com.cn/weather1d/101280601.shtm(深圳) ...