达到的效果就是,每个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. Java 进阶P-8.5+P-8.6

    抛出异常 异常的抛出与声明 如果你的函数可能抛出异常,就必须在函数头部加以声明 你可以声明并不会真的抛出得异常 什么能扔? 任何继承了Throw able类的对象 Exception类继承了Throw ...

  2. Java JDK1.5: 泛型 新特性的讲解说明

    Java JDK1.5: 泛型 新特性的讲解说明 每博一文案 听到过这样一句话:"三观没有标准.在乌鸦的世界里,天鹅也有罪." 环境.阅历的不同,造就了每个人独有的世界观.人生观. ...

  3. 100 行 shell 写个 Docker

    作者:vivo 互联网运维团队- Hou Dengfeng 本文主要介绍使用shell实现一个简易的Docker. 一.目的 在初接触Docker的时候,我们必须要了解的几个概念就是Cgroup.Na ...

  4. 微信小程序搜索优化指南(SEO)

    前言 其实在 2019 年上半年,微信就发布了基于小程序页面的搜索. 为了更好地发现及理解小程序的页面,结合过去一段时间来我们遇到的各种情况,强烈建议各位开发者花一些宝贵的时间认真阅读本文. 小程序爬 ...

  5. Pytest插件pytest-repeat重复执行

    Pytest插件pytest-repeat重复执行 安装 pip install pytest-repeat doc https://pypi.org/project/pytest-repeat/ h ...

  6. Vue25 mixin

    1 简介 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能.一个混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被"混合" ...

  7. 使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件

    使用vs2019学习xamarin时,创建新程序.使用模拟器真机等测试都报错如下图错误: 调整AndroidManifest.xml和设备调试属性,打开[Android SDK和工具]安装可能需要的S ...

  8. 样本熵(SampEn)的C/C++代码实现与优化

    正文 本文不介绍什么是样本熵,具体推荐看此文https://blog.csdn.net/Cratial/article/details/79742363,写的很好,里面的示例也被我拿来测试代码写的对不 ...

  9. mingw + cmake + vscode

    .vscode settings.json {     "cmake.generator": "MinGW Makefiles" } cmake-kits.js ...

  10. Mybatis 区别-开发

    三.MyBatis 主流的ORM 支持java .NET Ruby三种语言,MyBatis是对JDBC的封装 ORM框架Hibernate 区别: 1)sql 优化方面 Hibernate 使用 HQ ...