Keepalived+Nginx高可用案例(抢占式与非抢占式)
(1)下载安装Keepalived源码包
在服务器上解压
tar -xf keepalived-2.2.8.tar.gz
安装相关前置依赖
yum -y install gcc gcc-c++
使用configure工具进行安装
./configure --sysconfdir=/etc --prefix=/usr/local/keepalived --sbindir=/usr/sbin --bindir=/usr/bin
--sysconfdir=DIR #指定配置文件位置
--prefix=DIR #指定安装路径
--sbindir=DIR 指定命令位置,后面不需再配置环境变量
使用make make install进行安装
make && make install
(2)配置Keepalived在业务中的参数
本次操作为Keepalived单VIP抢占式配置,即两个虚拟机只有一台绑定VIP对外提供服务,且在一台主机失能时VIP将漂移到备机上接收流量,当主机恢复时VIP将再次切换
主机配置
global_defs {
router_id logincas1 ### router_id为全局定义当前节点的id,一般为唯一
enable_script_security
script_user root ##定义执行脚本的角色
vrrp_version 2
}
## 定义脚本
vrrp_script chk_nginx {
script "/usr/local/nginx-check.sh" ##脚本路径
interval 2 ##检测间隔
timeout 4 ##失败间隔,失败两次通信则失败
rise 4 ##成功四次则成功
fall 2 ##失败两次则切换
weight -50 ##脚本检测失败则扣减权重
}
vrrp_instance VI_1 { ##模块配置
version 2
state MASTER ##抢占式的情况下主机需设置为MASTER,备机为BACKUP
interface eth0 ##指定VIP流量的网卡
virtual_router_id 51 ##虚拟路由ID
priority 100 ##优先级,备机应比主机低一些
advert_int 1 ##VRRP心跳包发送间隔
authentication { ##权限认证
auth_type PASS ##类型:密码
auth_pass 2222
}
virtual_ipaddress {
172.29.184.220/24 ##VIP配置
}
track_script { ##脚本定义
chk_nginx
}
}
接下来需要补充完善 nginx-check.sh
思路是通过去检测是否有Nginx进程,检测到没有nginx进程时先执行Nginx的重启操作,一秒之后再次检测,如果Nginx进程还是不存在则关闭Keepalived,使VIP漂移到另一个节点
#!/bin/bash
if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
systemctl restart nginx
sleep 1
if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
systemctl stop keepalived
fi
fi
遇到的一些问题
当在脚本里使用ps aux | grep nginx | grep -v grep | wc -l去检测Nginx进程时发现脚本一直未生效,合理怀疑是Keepalived运行用户在执行这条命令时存在权限问题(脚本不能配置权限为777,Keepalived会警告并失效)
本次使用的高可用架构为单VIP架构,后续也可以尝试双VIP架构,即互为主备机,配置两个VIP模块,可以选择使用一个VIP接收流量,也可以使用两个VIP来监听流量,看业务的需求。
在单VIP高可用架构中,如果想要主机恢复后VIP不漂移到主机上,可以将主机的state也设置为BACKUP,但优先级需要比备机高一些,以确保初始状态VIP是绑定在主机上的
Keepalived+Nginx高可用案例(抢占式与非抢占式)的更多相关文章
- Nginx(四):Keepalived+Nginx 高可用集群
Keepalived+Nginx 高可用集群 (主从模式) 集群架构图 安装keepalived [root@localhost ~]# yum install -y keepalived 查看状态 ...
- Keepalived+Nginx高可用实例
Keepalived+Nginx高可用实例 注意事项: 1.VIP不需要在服务器网络配置文件中配置. 2.nginx主不可用时,需要kill掉nginx主的keepalived服务,这样才可以实现VI ...
- Keepalived+nginx高可用
这种方法会把Keepalived进程结束掉,在教育机构学习到的方法,我个人对这种方法不认可. 参考: https://www.cnblogs.com/gshelldon/p/14504236.html ...
- LVS+KeepAlived+Nginx高可用实现方案
文章目录概念LVSKeepAlived为什么要使用准备软件安装KeepAlived 安装源码安装yum安装服务启动.重启.关闭安装ipvsadmnginx安装防火墙(iptables)防火墙配置(方式 ...
- centos安装与配置keepalived+nginx高可用
一.安装启动keepalived 1.下载keepalived 在centos系统中,用wget下载最新版本: mkdir tool cd tool wget https://www.keepaliv ...
- Keepalived+Nginx高可用集群
Keepalived简介 Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替 ...
- keepalived+nginx 高可用集群
一.什么是高可用? nginx做负载均衡,能达到分发请求的目的,但是不能很好的避免单点故障. 1.nginx集群单点问题 分发器宕机怎么处理? 假如nginx服务器挂掉了,那么所有的服务也会跟着瘫 ...
- keepalived+nginx高可用实现
1.keepalived介绍 keepalived最初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了实现高可用的VRRP功能.keepalived除了能 ...
- linux下实现keepalived+nginx高可用
1 nginx负载均衡高可用 1.1 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务, ...
- keepalived+nginx高可用负载均衡环境搭建
上篇说道keepalived的环境搭建,本来keepalived结合lvs更有优势,但是也可以结合nginx来使用.下面接着说下nginx的环境搭建 环境信息: nginx(master) 192. ...
随机推荐
- 修改启动配置文件更改root密码
第二种:修改启动配置文件 (1)进入救援模式 开机选择第一个系统内核,键入e (2)修改配置文件 将光标移动linux 开始的行,添加内核参数 rd.break 按ctrl-x启动 光标放在linux ...
- 带你读论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击
本文分享自华为云社区<[论文阅读] (21)S&P21 Survivalism: Living-Off-The-Land经典离地攻击>,作者: eastmount . 摘要 随着恶 ...
- C# QRCode二维码的解析与生成
已知一张二维码图片,怎么生成一张一模一样的图片出来? 最近有个项目,需要用到QRCode,之前只做过Datamatrix格式的,想着应该也是差不多的,于是就依葫芦画瓢,掏出我的陈年OnBarcode类 ...
- numpy中计算相关系数的np.corrcoef
np.corrcoef的作用 计算 Pearson 乘积矩相关系数.它可以用来分析给定数据集中各个变量之间的线性相关程度,返回一个相关系数矩阵,相关系数矩阵中的值介于 -1 到 1 之间,包括 -1 ...
- 如何获取和分析Java堆信息
引言 在Java应用程序的开发和维护过程中,了解和分析Java堆信息是一项重要的任务.本文将介绍如何获取Java堆信息的不同方法,并提供一些分析堆信息的实用技巧. 获取Java堆信息的方法 Java虚 ...
- 原来你是这样的JAVA[06]-反射
1.JVM为每个加载的class及interface创建了对应的Class实例来保存class及interface的所有信息: 获取一个class对应的Class实例后,就可以获取该class的所有信 ...
- oracle导入导出某个schema数据
背景 公司之前部门拆分,但一些服务并没有拆分清楚.其中一个老服务,两个部门都在用,现在为了避免互相影响,决定克隆该服务.克隆就要克隆全套,当然也包括数据库,我们这个老服务,用的oracle,所以,就涉 ...
- VOLTE:MIUI14无5G信号、通话质量差、短信收不到的原因之一
在最近一次miui版本更新后的一段时间里,先后出现以下一些情况: 1. 在"双卡与移动网络"设置中,无论如何折腾"5G网络"开关或者"5G网络模式选择 ...
- 微信Native支付(扫码支付)商户配置
0.需要从商户平台获取/设置的配置 公众号appId 商户号 APIv3密钥 证书序列号 证书密钥 1.扫码登录商户平台 网址:https://pay.weixin.qq.com/ 2.确认已开通Na ...
- Solution -「CF 1073G」Yet Another LCP Problem
Description Link. 给定字符串,正整数集合 \(A,B\),满足 \(\forall u\in A,v\in B,1\le u,v\le n\). 求 \(\sum_{i\in A}\ ...