达到的效果就是,每个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. SQLSERVER 的 truncate 和 delete 有区别吗?

    一:背景 1. 讲故事 在面试中我相信有很多朋友会被问到 truncate 和 delete 有什么区别 ,这是一个很有意思的话题,本篇我就试着来回答一下,如果下次大家遇到这类问题,我的答案应该可以帮 ...

  2. 宇宙最强开发工具VScode简易手册

    VS Code 的全称是 Visual Studio Code,是一款开源的.免费的.跨平台的.高性能的.轻量级的代码编辑器.它在性能.语言支持.开源社区方面,都做得很不错,是这两年非常热门的一款开发 ...

  3. Nacos入门

    1.介绍 ①概要 官网:home (nacos.io) Nacos:Dynamic Naming and Configuration Service(动态命名和配置服务) 你可以看为:Eureka(注 ...

  4. G - 逆序对的数量

    G - 逆序对的数量 原题链接 什么是逆序对? 简单来说,两个数比较,下标小的数反而大,两个数称之为逆序对如\({3,1}\)就是这么一个逆序对 归并排序 由于逆序对逆序的性质,我们可以联想到排序: ...

  5. centos7中配置vnc服务多用户

    我用的本地yum源. 注意: 在配置root用户时,设置vnc密码.vncpasswd 添加普通用户时,要先在root用户下添加普通用户(如:vnc1,vnc2) useradd vnc1 passw ...

  6. 研究c#异步操作async await状态机的总结

    前言 前一段时间得闲的时候优化了一下我之前的轮子[DotNetCoreRpc]小框架,其中主要的优化点主要是关于RPC异步契约调用的相关逻辑.在此过程中进一步了解了关于async和await异步操作相 ...

  7. 通过手动创建hibernate工厂,自动生成表,完成数据库备份还原功能

    最近做toB.toG业务,普遍要去适配各种国产数据库,所以不得不用hibernate,过去这么多年一直都是用mybatis+mysql,现在重拾hibernate,专注跨数据库,感兴趣的加关注. 需求 ...

  8. 常用的hive sql

    细节:sql 中有涉及到正则匹配函数的,要注意转义符号 因为在不同语言下正则匹配规则是否需要加转义符号是不同的,举例,regexp_replace 函数,在hive sql的正则匹配规则的 \d+ 需 ...

  9. shell 命令小记

    if [ -d /abc ] if与后面括号要有空格 中括号与内部的变量也要有空格 for header in `ls *.h` do cp $header /usr/include/mymuduo ...

  10. 目标库DML 堵塞(dblink)导致OGG延迟

    [[toc]] # 问题概述xx库OGG延迟超过8个小时,但进程处于RUNNING.# 问题原因定位到有人通过A库的DBLINK修改目标库的数据. OGG同步的表, 目标的端也在做修改相同数据,无法保 ...