当前位置: 首页 > news >正文

keepalived实现nginx高可用详解

keepalived介绍

Keepalived 是一个用于做双机热备(HA)的软件,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换,提高系统的可用性。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

两台机器分别安装keepalived

yum install keepalived -y

配置Keepalived

配置主服务器 keepalved.conf

cat /etc/keepalived/keepalived.conf
global_defs {router_id  nginx01
}
vrrp_script chk_nginx_proxy {      #<==定义vrrp脚本,检测HTTP端口。script "/etc/keepalived/check_nginx.sh"    #<==执行脚本,当nginx服务有问题,就停掉keepalived服务。interval 2    #<==间隔2秒。weight 2
}
vrrp_instance VI_1 {state MASTERinterface ens192virtual_router_id 51priority 150advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {100.100.137.250}track_script {    #触发检查chk_nginx_proxy}
}

配置备服务器 keepalved.conf

cat /etc/keepalived/keepalived.conf
global_defs {router_id nginx02
}
vrrp_script chk_nginx_proxy {      #<==定义vrrp脚本,检测HTTP端口。script "/etc/keepalived/check_nginx.sh"    #<==执行脚本,当nginx服务有问题,就停掉keepalived服务。interval 2    #<==间隔2秒。weight 2
}vrrp_instance VI_1 {state BACKUPinterface ens192virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {100.100.137.250}track_script {    #触发检查chk_nginx_proxy}
}

配置nginx脚本

分别在nginx01,nginx02上配置如下脚本

cat /etc/keepalived/check_nginx.sh
#!/bin/basha=$(systemctl is-active nginx)
if [  $a  != active ]
thensystemctl stop keepalived
fichmod 755 /etc/keepalived/check_nginx.sh

启动

# 两台都是先启动nginx
systemctl start nginx
systemctl enable nginx
systemctl status nginx# 之后再分别启动keepalived
systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived

这时已经配置好了。测试是否高可用即可。

http://www.sczhlp.com/news/11983/

相关文章:

  • 搜维尔科技:Xsens动作捕捉+AI训练,高效提升人形机器人精度与反应速度
  • 质数中的质数 2025.8.14 模拟赛
  • Mysql索引失效的情况
  • QOJ #5439. Meet in the Middle 题解
  • MySQL数据库Docker镜像Linux
  • 没想到C#模式匹配,代码优雅的背后却这么丑陋
  • 某科学的珂朵莉树
  • World Map 世界地图
  • ELK日志
  • consul
  • kong和konga的应用
  • MARS算法理论和Python代码实现:用分段回归解决非线性时间序列预测问题
  • 数据密度一目了然~带你走近三维热力图
  • 详细理解,Java中多态特性的instanceof的使用!
  • 蓝队警报服务器:构建安全监控系统的实战模拟
  • 最小割树
  • English-reading
  • 在K8S中,有一家拥有非常分散的系统的跨国公司,期待解决整体代码库问题。你认为公司如何解决他们的问题?
  • 三行代码搞定AutoDock Vina批量分子对接
  • 开源免费!敲敲云APaaS零代码平台,做轻流/明道本地化的平替产品
  • 子产论政宽猛
  • Iframe时针对X-Frame-Options跨域问题
  • 一文读懂PDB格式 protein database bank
  • 深度学习为何有效及其局限性解析
  • postgresql数据库主从备份
  • 【自学嵌入式:stm32单片机】编码器接口测速
  • Node.js 连接 MySQL 数据库指南
  • 安卓目录结构openpilot
  • 状态码详解
  • 在K8S中,从单片到微服务的转变解决了开发方面的问题,但却增加了部署方面的问题。公司如何解决部署方面的问题?