- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
本篇主要介绍一下 keepalived + nginx 来实现 对于nginx的高可用, 还是简单的主备模式 。
前面有了解keepalived 的主备的基本使用, 但是那种是针对宕机等情况 停止了keepalived 的进程实现的 vip的漂移,本篇把keepalived 添加校验nginx存活脚本 实现针对nginx的监控, 实现nginx的高可用 。
准备2台机器 , 把111定义为 keepalived 的 MASTER 节点 。
ip | keepalived |
---|---|
172.16.225.111 | MASTER |
172.16.225.110 | BACKUP |
分别在2台服务器上配置好nginx 并且修改默认的 index.html 添加上 ip 标识方便区分. 如下
在keepalived 的配置文件中的 instance 里面配置 track_script 指定 检查nginx是否存活的脚本 。
! Configuration File for keepalived
global_defs {
router_id LB111
}
vrrp_script chk_nginx {
# 具体的脚本
script "/etc/keepalived/nginx_check.sh"
interval 2 # 2s执行一次
weight -20 # 失败一次 则优先级 -20
}
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.225.200
}
# 指定脚本
track_script {
chk_nginx
}
}
! Configuration File for keepalived
global_defs {
router_id LB111
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.225.200
}
track_scrip {
chk_nginx
}
}
主要是这个脚本 这个脚本的内容就是 通过ps命令检查 nginx进程是否存活 ,如果不存活 则尝试启动一次 则检查 , 如果还是启动不起来 则 把keepalived 关闭 , 从而让 keepalived 能检测到 并且 vip 能够漂移到其他机器 。
#!/bin/bash
status=$(ps -C nginx --no-heading|wc -l)
if [ "${status}" = "0" ]; then
# 尝试启动一次
systemctl start nginx
# 再次检查ngixn 进程
status2=$(ps -C nginx --no-heading|wc -l)
if [ "${status2}" = "0" ]; then
# 关闭 keepalived
systemctl stop keepalived
fi
fi
需要在2台机器上都配置上这个脚本 。
# 给脚本一个 可执行的权限
chmode +x /etc/keepalived/nginx_check.sh
# 重启或者启动 keepalived
systemctl restart keepalived
如果重启后或者启动后 查看日志有如下抛错 , 则是 selinux 没有关闭 。
# 临时关闭
setenforce 0
#永久关闭
sed -i 's/SELINUX=enforcing/\SELINUX=disabled/' /etc/selinux/config
2台机器 分别启动nginx 和 keepalived 后 。
访问 vip 172.16.225.200 这个vip 目前在 111 master机器上 。
在master机器上 把ngixn关闭 。
# 关闭 nginx
./nginx -s stop
# 此时查看 keepalived 的状态就是 dead了
systemctl status keepalived
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
Active: inactive (dead)
再次访问vip 172.16.225.200 , 可以看到 vip 已经跑到了 backup机器110上了 。
本篇主要介绍了 keepalived + nginx 的基本的主备配置 实现了 nginx 的高可用,核心点就是配置 nginx_check.sh脚本给keepalived 的执行, 这个nginx_check.sh 脚本内如果发现nginx 不存活 尝试启动 如果还是不存活 则直接关闭 keepalived 进程 。
欢迎大家访问 个人博客 Johnny小屋 欢迎关注个人公众号 。
最后此篇关于keepalived+nginx实现高可用的文章就讲到这里了,如果你想了解更多关于keepalived+nginx实现高可用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
四、Keepalived 【1】、keepalived运行原理 Keepalived检测每个服务器接节点状态 服务器节点异常或出现工作故障,keepalived将故障节点从集群系统中
根据(详细)主题,与使用 Keepalived 相比有什么优势吗? & HAProxy作为 HA 网络服务器 loadbalancer vs 一个纯粹的keepalived解决方案? 最佳答案 Kee
我有两台linux服务器, 每个服务器都有两个 NIC,模式 1 绑定(bind)“bond0”。 我的用户级应用程序 - keepalived 在该绑定(bind)接口(interface)上运行
编译安装 HAProxy 新版 LTS 版本,编译安装 Keepalived 开启HAProxy多线程,线程数与CPU核心数保持一致,并绑定CPU核心 因业务较多避免配
keepalived + nginx 实现高可用 本篇主要介绍一下 keepalived + nginx 来实现 对于nginx的高可用, 还是简单的主备模式 。 1.概述
Keepalived 由于在生产环境使用了mysqlcluster,需要实现高可用负载均衡,这里提供了keepalived+haproxy来实现.  
1.keepalived介绍 keepalived最初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了实现高可用的VRRP功能。keepalived除
我正在尝试为我的服务实现基于 keepalived 的故障转移。请在下面找到我的主节点和备份节点的配置。 主节点: vrrp_script chk_splunkd { script "pido
我有 2 个应用服务器都配置为运行 php cron 作业,但只有 1 个可以随时运行该作业。由于我已经将keepalived用于其他目的,我正在考虑在cron作业中使用一些逻辑来检查节点是否具有虚拟
我正在尝试使用 keepalived 配置两个事件负载均衡器服务器。 它与标准配置略有不同,我们有两台服务器和一个虚拟 IP。 我想要的只是当 loadbalancer_1 出现故障时,loadbal
前言:为了减少三维数据中心可视化管理系统的停工时间,保持其服务的高度可用性。同时部署多套同样的三维可视化系统,让三维数据中心可视化系统同时部署并运行到多个服务器上。同时提供一个虚拟IP,然后外面通过
前言 为解决单点故障,我们需要配置主从热备方案,服务器数量有限,故使用Docker模拟安装配置。 本次配置默认已经安装了Docker。 配置环境:centos7 64位 docker版本:D
本文介绍了nginx+keepalived 高可用主从配置详解,分享给大家,具体如下: 1、系统环境及软件版本 CentOS 6.6 x64 keepalived-1.2.18.tar.gz
nginx是一款非常优秀的反向代理工具,支持请求分发,负载均衡,以及缓存等等非常实用的功能。在请求处理上,nginx采用的是epoll模型,这是一种基于事件监听的模型,因而其具备非常高效的请求处理效
我有 2 个带有 keepalived 和 haproxy 服务的节点(CentOS7)。 如果我关闭一个节点一切正常。但是如果 haproxy 出现故障,我想对 VIPS 进行故障转移。 这是第一个
我有下一个场景,4 个运行 Red Hat Enterprise Linux 7 的虚拟机: 20.1.67.230 服务器(虚拟 IP)(不是主机) 20.1.67.219 haproxy1(负载均
我有 2 台运行 keepalived 的服务器,IP 配置如下: 服务器 1: eth0 172.31.48.10 服务器 2: eth0 192.168.1.5 eth0:1 172.31.48.
keepalived 有什么办法只有当 2 个接口(interface)宕机时才进入故障/备份状态? 在文档中,我发现如果一个或多个接口(interface)出现故障,track_interface
我一直致力于一个项目,该项目将建立一组高可用性负载平衡器。负载平衡和高可用性软件似乎工作得很好(我正在使用 Crossroads 进行负载平衡,使用 Keepalived 使负载平衡服务器具有高可用性
1、组件及实现的功能 Keepalived:实现对Haproxy服务的高可用,并采用双主模型配置; Haproxy:实现对Nginx的负载均衡和读写分离; Nginx:实现对HTTP请求的高速
我是一名优秀的程序员,十分优秀!