nginx+keepalived实现高可用

简介: 如果通过keepalived实现高可用

一、演示环境说明

操作系统:ubuntu 22.04.3 LTS

演示服务器IP地址

主机:192.168.0.19

备机:192.168.0.56

浮动IP:192.168.0.120


注:以下操作均需root权限

安装keepalived

apt install keepalived


配置keepalived

# 主机keepalived配置cd /etc/keepalived
cat keepalived.conf
! Configuration File for keepalived
global_defs {
    router_id balance01       #xx主备id    enable_script_security
    script_user root
}
#加入周期性检测nginx服务脚本的相关配置vrrp_script check_nginx {
    script "/etc/keepalived/check_nginx.sh"#心跳执行的脚本,检测nginx是否启动    interval 2#(检测脚本执行的间隔,单位是秒)}
vrrp_instance VI_1 {
    state BACKUP
    interface eth0   #网卡名称    virtual_router_id 51    priority 99#优先级,主不改,备改成比100小就行    advert_int 1    authentication {
        auth_type PASS
        auth_pass NgLMwBmE
    }
    unicast_src_ip 192.168.0.19 #这里是主服务器私网ip    unicast_peer {
192.168.0.56      #备服务器的私网ip,如果有多个,可以换行添加(对端ip,比如主的这里写备的内网ip)    }
    virtual_ipaddress {
192.168.0.120 label eth0:0
    }
#添加跟踪(执行脚本)    track_script {
        check_nginx
    }
}
# 备机keepalived配置! Configuration File for keepalived
global_defs {
    router_id balance01       #xx主备id    enable_script_security
    script_user root
}
#加入周期性检测nginx服务脚本的相关配置vrrp_script check_nginx{
    script "/etc/keepalived/check_nginx.sh"#心跳执行的脚本,检测nginx是否启动    interval 2#(检测脚本执行的间隔,单位是秒)}
vrrp_instance VI_1 {
    state MASTER
    interface eth0   #网卡名称    virtual_router_id 51    priority 100#优先级,主不改,备改成比100小就行    advert_int 1    authentication {
        auth_type PASS
        auth_pass NgLMwBmE
    }
    unicast_src_ip 192.168.0.56 #这里是主服务器私网ip    unicast_peer {
192.168.0.19      #备服务器的私网ip,如果有多个,可以换行添加(对端ip,比如主的这里写备的内网ip)    }
    virtual_ipaddress {
192.168.0.120 label eth0:0
    }
    添加跟踪(执行脚本)
    track_script{
        check_nginx
    }
}
# chech_nginx.sh脚本#!/bin/bash#检查nginx进程是否存在count=$(ps -C nginx --no-heading | wc -l)#进程数等于0的时候if [ "${count}"="0" ]; then#尝试启动一次nginx,停止2秒后再次检测    /home/ops/server/nginx/sbin/nginx
sleep2count=$(ps -C nginx --no-heading | wc -l)if [ "${count}"="0" ]; then#如果启动没成功,就杀掉keepalive触发主备切换        systemctl stop keepalived
fifi

启动及检查

systemctl enable keepalived
systemctl start keepalived

分别在主、备机上启动keepalived,然后用ifconfig -a命令查看,此时主机的eth0:0接口会绑定浮动IP

ifconfig -aeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.0.56  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::f816:3eff:fe76:ce06  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:76:ce:06  txqueuelen 1000  (Ethernet)
        RX packets 423293  bytes 233312508 (233.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 437023  bytes 331280752 (331.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.0.120  netmask 255.255.255.255  broadcast 0.0.0.0
        ether fa:16:3e:76:ce:06  txqueuelen 1000  (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 78258  bytes 8896394 (8.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 78258  bytes 8896394 (8.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

主机关闭keepalived,从机会接管浮动IP,说明keepalived生效。


目录
相关文章
|
1月前
|
负载均衡 应用服务中间件 Linux
高可用系列文章之三 - NGINX 高可用实施方案
高可用系列文章之三 - NGINX 高可用实施方案
|
7月前
|
消息中间件 缓存 应用服务中间件
Nginx系列教程(02) - 高可用与高并发介绍
Nginx系列教程(02) - 高可用与高并发介绍
76 0
|
1月前
|
运维 应用服务中间件 Linux
keepalived详解(三)——keepalived与Nginx配合实战
keepalived详解(三)——keepalived与Nginx配合实战
75 1
|
7月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
329 0
|
26天前
|
监控 负载均衡 应用服务中间件
Keepalive 解决nginx 的高可用问题
Keepalive 解决nginx 的高可用问题
|
1月前
|
存储 运维 负载均衡
Heartbeat+Nginx实现高可用集群
通过Heartbeat与Nginx的结合,您可以建立一个高可用性的负载均衡集群,确保在服务器故障时仍能提供无中断的服务。这种配置需要仔细的计划和测试,以确保系统在故障情况下能够正确运行。
32 2
|
1月前
|
Kubernetes 搜索推荐 应用服务中间件
通过keepalived+nginx实现 k8s apiserver节点高可用
通过keepalived+nginx实现 k8s apiserver节点高可用
96 16
|
1月前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
1月前
|
负载均衡 前端开发 应用服务中间件
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
231 1
|
7月前
|
应用服务中间件 Shell nginx
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离(二)
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离