Nginx高级——Keepalived高可用

本文介绍Keepalived软件,主要用于LVS负载均衡管理与监控,实现服务高可用。通过VRRP协议,Keepalived能在主节点故障时自动切换至备节点,确保服务连续性。以Nginx为例,详细讲解了Keepalived的安装配置过程,以及如何实现Nginx主从自动切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

keepalived介绍

1. keepalived是什么

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)功能。
因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

2. keepalived主要功能

  • 管理LVS负载均衡软件
  • 实现LVS集群节点的健康检查
  • 作为系统网络服务的高可用性(failover)

3. keepalived故障转移

Keepalived高可用服务之间的故障切换转移,是通过 VRRP 来实现的。
.
在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。
.
而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。扩展一下,之前的实践类文章:搭建Redis集群和MySQL主从同步

在这里插入图片描述

说明:keepalived的主从切换和redis的主从切换是不一样的,keepalived的主节点挂了以后,从节点变为主节点,之前的主节点恢复以后继续做主节点。redis的主节点挂了以后,重新恢复以后变为从节点

一、 linux安装nginx

1、配置linux网络为NAT模式

虚拟机网络配置:
	设置虚拟机为NAT模式
		ip:192.168.70.0
		网关:192.168.70.2
		子网掩码:255.255.255.0
linux网络配置:
	在/etc/sysconfig/network-scripts配置或者采用如图界面配置:
		IPADDR=192.168.70.4
		GATEWAY=192.168.70.2
		DNS1=192.168.70.2

在这里插入图片描述

2、安装nginx

  • Nginx配置

  • windows访问虚拟机时,开启VMware Virtual Ethernet Adapter for VMnet

在这里插入图片描述
在这里插入图片描述

二、keepalive使用

原理:类似心跳检测
相同功能:LVS

在这里插入图片描述

三、Nginx主备搭建

1、linux安装keepalived

参考: keepalived安装

  1. 下载keepalived链接
  2. 安装依赖包

yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel

  1. 上传压缩包到linux

tar -zxvf keepalived-2.0.7.tar.gz
cd keepalived-2.0.7
./configure --prefix=/usr/local/keepalived
make && make install

  • 主从都需安装keepalived

2、keepalived配置

配置重启脚本

 mkdir /etc/keepalived
 cp /usr/local/keepalived/etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.conf 

cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/keepalived
cp /usr/local/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/keepalived
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived
  • 开机启动:chkconfig keepalived on
  • 查看开机启动的服务:chkconfig –list
  • 启动、关闭、重启service keepalived start|stop|restart

配置:keepalived.conf 及启动脚本nginx_check.sh
nginx_check.sh:

#!/bin/bash
A=`ps -C nginx ¨Cno-header |wc -l`
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

keepalived.conf


! Configuration File for keepalived

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
    interval 2 #检测时间间隔
    weight -20 #如果条件成立的话,则权重 -20
}
# 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
    state MASTER #来决定主从
    interface eno16777736 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
    virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
    mcast_src_ip 192.168.110.141 #填写本机ip
    priority 100 # 节点优先级,主要比从节点优先级高
    nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
    advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 将 track_script 块加入 instance 配置块
    track_script {
        chk_nginx #执行 Nginx 监控的服务
    }

    virtual_ipaddress {
        192.168.110.110 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
    }
}

在这里插入图片描述

  • 注意:keepalived.conf的 virtual_ipaddress 要配置在与linux的ip在同一网段,否则不能从本机访问到虚拟机的linux的虚拟ip

    在这里插入图片描述

三、测试nginx主从切换

同时启动时:访问主机
主机关闭:访问备机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值