达到的效果就是,每个keepalived中都有一个weight,这个数最大的作为主节点。意外挂掉就另一个升为leader,比如开始一个6,一个5,挂一次这个数减2。6挂一次再启动就是5,4了,两台机器以同一个VIP(虚IP)访问。

要写一个循环检测的脚本check_nginx.sh,看keepalived的状态,如下:

sudo cat >/etc/keepalived/check_nginx.sh<<‐'EOF'
#!/bin/bash
counter=$(ps ‐C nginx ‐‐no‐heading|wc ‐l)
if [ "${counter}" = "0" ]; then
systemctl start nginx
sleep 2
counter=$(ps ‐C nginx ‐‐no‐heading|wc ‐l)
if [ "${counter}" = "0" ]; then
systemctl stop keepalived
fi
fi
EOF

  

然后给check_nginx.sh 增加权限

chmod 755 /etc/keepalived/check_nginx.sh

然后是keepalived master 配置:

# 全局配置,路由ID,固定不变
global_defs {
router_id LVS_DEVEL
}
# 定义Nginx状态脚本
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
# 间隔时间,单位为秒,默认1秒
interval 2
# 权重,当脚本成功或失败对当前节点的优先级是增加还是减少
weight ‐5
}
#VRRP实例
vrrp_instance VI_1 {
# 主节点
state MASTER
# 绑定的网卡,使用ifconfig命令查看获取
interface ens33
# 虚拟路由id,保证相同
virtual_router_id 51
# 优先级,抢占模式下优先级高的称为主
priority 84
# 指定发送VRRP通告的间隔。单位是秒。
advert_int 2
# 安全认证用的密码,自定义即可
authentication {
auth_type PASS
auth_pass 1111
}
# 对外暴露的VIP地址
virtual_ipaddress {
*.*.*.*
}
# 指定Nginx执行状态脚本
track_script {
chk_nginx
}
}

  

然后是keepalived slave配置:

global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight ‐5
}
vrrp_instance VI_1 {
# 初始角色Backup
state BACKUP
interface *.*.*.*
virtual_router_id 51
# 优先级比master低
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
*.*.*.*
}
track_script {
chk_nginx
}
}

  然后可以停掉master,VIP不影响访问,参考文章地址:https://www.jianshu.com/p/6658257abb65

keepalived+nginx+应用的更多相关文章

  1. LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  2. 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  3. Ubuntu下配置 keepalived+nginx+tomcat 负载均衡

    本文力图阐述在 Ubuntu Server 环境下使用 Keepalived + Nginx + Tomcat 搭建高可用负载均衡环境的操作步骤和简约配置,这里不涉及性能调优.先说一下他们各自扮演的角 ...

  4. Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例

    前言 此示例为keepalived+nginx+tomcat的基础配置示例,某些特定配置此例中不会出现,在示例中会用到三个虚拟机:两个纯命令行用于模拟服务端配置,一个带桌面环境的用于模拟客户端访问,这 ...

  5. KeepAlived+Nginx实现高可用负载

    一.环境及安装版本: centos6.5.Nginx1.4.7.keepalived1.3.2 虚拟IP 真是IP Nginx端口 主从分配 10.0.90.215 10.0.90.217 80 MA ...

  6. 搭建 Keepalived + Nginx + Tomcat 的高可用负载均衡架构

    1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...

  7. 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备

    在上一篇 分布式文件系统FastDFS如何做到高可用 中已经介绍了FastDFS的原理和怎么搭建一个简单的高可用的分布式文件系统及怎么访问. 高可用是实现了,但由于我们只设置了一个group,如果现在 ...

  8. 主备(keepalived+nginx)

    实验环境 系统: centos 6.9 mini 机器名   ip                                   虚拟ip kn1     192.168.126.10 kn2  ...

  9. Keepalived+Nginx实现高可用负载均衡集群

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+nginx双主高可用负载均衡集群及LAMP应用keepalived-1 ...

  10. Keepalived + nginx实现高可用性和负载均衡

    在前面的一篇中讲到了Heartbeat作为高可用服务架构的解决方案,今天有试验了一种全新的解决方案,即采用Keepalived来实现这个功能. Keepalived 是一种高性能的服务器高可用或热备解 ...

随机推荐

  1. 结构型模式 - 桥接模式Bridge

    学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 桥接模式的定义与特点 桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化.它是用组合关系代替继承关系来实现 ...

  2. .Net Core对于`RabbitMQ`封装分布式事件总线

    首先我们需要了解到分布式事件总线是什么: 分布式事件总线是一种在分布式系统中提供事件通知.订阅和发布机制的技术.它允许多个组件或微服务之间的协作和通信,而无需直接耦合或了解彼此的实现细节.通过事件总线 ...

  3. 有序数组的平方&长度最小的子数组&螺旋矩阵Ⅱ

    一.有序数组的平方 977.有序数组的平方 leetcode链接 1.方法概述 双"指针"解法:因为数组本来是有序的,平方后可能出现的两端大数值大的情况.所以从数组两端开始遍历,谁 ...

  4. ubuntu16.04安装ROS+cartographer

    使用张明明大神修改编译版 注意:中间出过很多错误,大部分是开源包eigen,protobuf的版本与该SLAM不匹配. 之前装了eigen的,删掉.protobuf我装的是3.6.1 1.安装依赖性: ...

  5. UBUNTU18.04安装CUDA

    1.官方教程https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#ubuntu-installation 2.在h ...

  6. Ubuntu18.04 下使用Flatpak稳定安装TIM、微信、迅雷和百度云

    https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu git clone https://gitee.com/wszqkzqk/deepin-wine-c ...

  7. CenterOS7上搭建RabbitMQ集群

    1 保证多个主机之间能够互相访问 修改host , vi /etc/hosts 例如修改成下面的内容: 192.168.10.157 rabbitmq-1 192.168.10.159 rabbitm ...

  8. CF818F - Level Generation

    题意:假设当前有 \(n\) 个点,求最多的边数,使得桥的数量 \(\ge\lceil\dfrac{m}{2}\rceil\). 我们考虑构造,首先,整张图一共只有一个双连通分量.因为我们如果有两个双 ...

  9. dotnet core 托管

    1.托管形式 dotnet core的托管形式分为 进程内托管(InProcess).进程外托管 (OutOfProcess) 新建的Web程序csproj带有 <AspNetCoreHosti ...

  10. LeetCode-2044 统计按位或能得到最大值子集的数目

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-number-of-maximum-bitwise-or-subsets 题目描述 给 ...