网关高可用之keepavlived全流程(安装/配置/验证/解析)
1.场景描述
因为要做网关的高可用,用到了keepalived+nginx,来保证nginx的高可用。(微服务时代之网关及注册中心高可用架构设计),如下图:

安装了keepavlived,走了一些弯路,记录下吧,nginx的安装就不多说了,自己博客已经介绍了好几篇了。
2. 解决方案
2.1 安装keepalived
2.1.1 安装相关依赖包
[root@t-ruanjianlaowang ~]# yum install -y libnl*
[root@t-ruanjianlaowang ~]# yum install -y libnfnetlink-devel zlib zlib-devel gcc gcc-c++ openssl openssl-devel openssh
假如连不了,网上也有这些包的下载,下载后tar解压也行。
2.1.2 下载并安装keepalived
官网地址:https://www.keepalived.org/download.html
我们使用的最新版本:keepalived-2.0.18.tar.gz,993k
tar -zxvf keepalived-2.0.18.tar.gz
cd keepalived-2.0.18/
./configure --prefix=/usr/local/keepalived
make
make install
2.1.3 添加keepavlived为系统服务
[root@t-ruanjianlaowang ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
[root@t-ruanjianlaowang ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived
[root@t-ruanjianlaowang ~]# cp /root/tools/keepalived-2.0.18/keepalived/etc/init.d/keepalived /etc/init.d/keepalived
#/etc/keepalived下好像有了keepalived文件夹,有了就不用mkdir了,软件老王
[root@t-ruanjianlaowang ~]# mkdir /etc/keepalived
[root@t-ruanjianlaowang ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
2.1.4 设置开机启动
# 设置开机启动
[root@t-ruanjianlaowang ~]# chkconfig keepalived on
[root@t-ruanjianlaowang ~]# service keepalived start|stop|restart
到这里仅仅是keepalived安装完成,接下来还要根据项目项目配置keepalived.conf信息。
2.2 配置文件修改
2.2.1 master的conf配置文件
vi cd /etc/keepalived/keepalived.conf
!Configuration File for keepalived
global_defs {
router_id RUANJIANLAOWANG_MASTER
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface ens666 #这里必须非常注意,软件老王刚开始没太注意,这里是你的网卡名称
virtual_router_id 81 #这个会在backup机器上用到
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
10.192.168.21
}
}
2.2.2 还有个检查nginx是否挂掉的sh,也上传下
vi nginx_check.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
/usr/sbin/nginx
sleep 2
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
/etc/init.d/keepalived stop
fi
fi
2.2.3 backup机器上conf文件
/bin/bash: Configuration: command not found
bal_defs {
router_id RUANJIANLAOWANG2
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径
interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立,权重-20
}
vrrp_instance VI_1 {
state BACKUP
interface ens168
virtual_router_id 81
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 111track_script {
chk_nginx ## 执行 Nginx 监控的服务,软件老王
}
virtual_ipaddress {
10.192.168.21
}
}
这里记着也把检查nginx的sh文件上传上,跟master上的一样。
2.3 启动
(1)配置完成后开始启动
[root@t-ruanjianlaowang ~]# service keepalived start
(2)启动过程中,打开日志看一下(刚开始可能会有问题,看下日志啥都明白了)
[root@t-ruanjianlaowang ~]# tail -f /var/log/messages
(3)假如启动不了,可以尝试以下方式。
[root@t-ruanjianlaowang ~]# systemctl daemon-reload
#上面试过后,不行再重新注册服务
[root@t-ruanjianlaowang ~]#chkconfig --del keepalived
[root@t-ruanjianlaowang ~]# cd /usr/lib/systemd/system/
[root@t-ruanjianlaowang ~]#rm -rf keepalived.service
[root@t-ruanjianlaowang ~]# chkconfig --add keepalived
2.4 验证
[root@t-ruanjianlaowang ~]#ip addr show ens666
[root@t-ruanjianlaowang ~]#ip addr show ens168
ens666、ens168为网卡名称
假如绑定成功,软件老王机器里显示的信息里面会有:10.192.168.21的显示
I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!
网关高可用之keepavlived全流程(安装/配置/验证/解析)的更多相关文章
- 微服务实战系列(十)-网关高可用之中间件Keepalived
1.场景描述 因为要做网关的高可用,用到了keepalived+nginx,来保证nginx的高可用,如下图: 安装了keepavlived,走了一些弯路,记录下吧,nginx的安装就不多说了,博客已 ...
- Mycat高可用解决方案一(mysql安装)
Mycat高可用解决方案一(mysql安装) Mycat关键特性 关键特性 支持SQL92标准 支持MySQL.Oracle.DB2.SQL Server.PostgreSQL等DB的常见SQL语法 ...
- Hadoop 高可用(HA)的自动容灾配置
参考链接 Hadoop 完全分布式安装 ZooKeeper 集群的安装部署 0. 说明 在 Hadoop 完全分布式安装 & ZooKeeper 集群的安装部署的基础之上进行 Hadoop 高 ...
- 基于zookeeper的高可用Hadoop HA集群安装
(1)hadoop2.7.1源码编译 http://aperise.iteye.com/blog/2246856 (2)hadoop2.7.1安装准备 http://aperise.iteye.com ...
- 高可用Keepalived+LVS搭建流程
本流程搭建1个master,1个backup节点的Keepalived,使用lvs轮询2个节点的服务. 一.使用版本 CentOS 7.7 Keepalived 1.3.5 ipvsadm 1.27( ...
- 高可用Hadoop平台-Ganglia安装部署
1.概述 最近,有朋友私密我,Hadoop有什么好的监控工具,其实,Hadoop的监控工具还是蛮多的.今天给大家分享一个老牌监控工具Ganglia,这个在企业用的也算是比较多的,Hadoop对它的兼容 ...
- 分布式架构高可用架构篇_02_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2B ...
- 分布式架构高可用架构篇_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
原文:http://www.iteye.com/topic/1145651 从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的Master-Slave 方式,增加了基于Z ...
- 分布式架构高可用架构篇_07_MySQL主从复制的配置(CentOS-6.7+MySQL-5.6)
参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2B ...
随机推荐
- koa2+vue实现登陆以及是否登陆控制
这里我们先说说登陆以及登陆状态控制需要的插件jsonwebtoken,jsonwebtoken就可以实现token的生成与反向解密出用户数据.安装步骤: npm install jsonwebtoke ...
- cs231n---生成模型
1 生成模型的定义和分类 生成模型是一种无监督学习方法.其定义是给一堆由真实分布产生的训练数据,我们的模型从中学习,然后以近似于真实的分布来产生新样本. 生成模型分为显式和隐式的生成模型: 为什么生成 ...
- AutoCAD二次开发(.Net)之创建图层Layer
//https://blog.csdn.net/qq_21489689?t=1[CommandMethod("CREATELY")] public void CreateLayer ...
- Angular生命周期理解
Angular每个组件,包含根组件和每一级的子组件,都存在一个生命周期,从创建,变更到销毁.Angular提供组件生命周期钩子,把这些关键时刻暴露出来,赋予在这些关键结点和组件进行交互的能力. 在An ...
- Unity进阶之ET网络游戏开发框架 08-深入登录成功消息
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- 你是否真的了解全局解析锁(GIL)
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...
- CTPN
1. https://zhuanlan.zhihu.com/p/34757009 (原理) 2. https://www.jianshu.com/p/471bdbd0170d (bi-LSTM)
- ubuntu18.04安装docker
本文基于unbuntu18.04版本来安装docker,步骤如下: 1:右击桌面->打开终端(E). 2::输入以下命令: sudo snap install docker ,输入密码之后出下图 ...
- go语言实现分布式对象存储系统之单体对象存储
对象存储 基本概念 主流存储类型分为三种:块存储.文件存储以及对象存储 NAS(文件存储):Network Attached storage,提供了存储功能和文件系统的网络服务器,客户端可以访问NAS ...
- 设计模式(C#)——04原型模式
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 在软件开发过程中,我们习惯使用new来创建对象.但是当我们创建一个实例的过程很昂贵或者很复杂,并且需要创建多个这样的 ...