• LVS+Keepalived群集


    LVS+Keepalived群集

    一、Keepalived实现原理

    1、原理

    Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题

    在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP(VIP)主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性

    VRRP(虚拟路由冗余协议)是针VRRP对路由器的一种备份解决方案
    (1)由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务
    (2)每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
    (3)若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务
    
    • 1
    • 2
    • 3
    • 4

    2、Keepalived体系主要模块及其作用

    keepalived体系架构中主要有三个模块,分别是core、check和vrrp。
    ●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
    ●vrrp模块:是来实现VRRP协议的。(调度器之间的健康检查和主备切换)
    ●check模块:负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)
    
    • 1
    • 2
    • 3
    • 4

    3、Keepalived工具介绍

    专为LVS和HA设计的一款健康检查工具

    • 支持故障自动切换

    • 支持节点健康状态检查

      判断LVS负载均衡调度器、节点服务器的可用性,当master主机出现故障及时切换到backup节点保证业务正常,当master故障主机恢复后将其重新加入群集并且业务切换回master节点。

    • 官方网站:http://www.keepalived.org/

    4、合格的集群应该具备的特性

    一个合格的集群应该具备以下几个特性:
    
    1)负载均衡:LVS   Nginx  HAProxy  F5
    
    2)健康检查:for  调度器/节点服务器  Keepalived   Heartbeat
    
    3)故障转移:主备切换
    
    健康检查(探针)
    1)发送心跳消息   ping/pong
    2)TCP端口检查:向一个主机的 IP:PORT 发起TCP连接
    3)HTTP URL检查:向一个主机的http://IP:PORT/URL路径发送HTTP GET请求方法,主机响应返回 2XX 3XX 状态码则认为健康检查正常,如响应返回 4XX 5XX 状态码则认为健康检查异常
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    二、Keepalived的部署

    7-4(主),7-7(备)
    systemctl stop firewalld
    setenforce 0
    #安装
    yum install -y keepalived
    
    • 1
    • 2
    • 3
    • 4
    • 5
    cd /etc/keepalived
    ls
    cp keepalived.conf {,.bak}
    #备份
    
    • 1
    • 2
    • 3
    • 4
    vim keepalived.conf
    #修改配置文件
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id NGINX_01
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.210.200
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    在这里插入图片描述

    scp keepalived.conf 192.168.210.107:`pwd`
    #将配置文件传送到另一台服务器
    7-7
    cd /etc/keepalived
    ls
    vim keepalived.conf
    router_id LVS_02 #路由id改成不一样的
    state BACKUP #修改初始状态
    priority 90 #修改优先级
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    7-4
    systemctl start keepalived
    #开启
    systemctl status keepalived
    #查看keepalived状态
    ip a
    #查看VIP地址,主有,备没有,ifconfig是看不到的
    #VRRP是keepalived通过ip命令生成的
    #关掉keepalived
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    systemctl stop keepalived
    ip a
    #VIP地址不在了
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    7-7
    ip a
    #VIP地址漂过来了
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    7-4
    #开启
    systemctl start keepalived
    #VIP地址又回来了,它是通过优先级去判断谁是最终主,7-4的优先级高于7-7
    
    • 1
    • 2
    • 3
    • 4

    Keepalived通过什么判断哪台主机为主服务器,通过什么方式配置浮动IP?

    答案:
    Keepalived首先做初始化先检查state状态,master为主服务器,backup为备服务器。
    然后再对比所有服务器的priority,谁的优先级高谁是最终的主服务器。
    优先级高的服务器会通过ip命令为自己的电脑配置一个提前定义好的浮动IP地址。
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、LVS+Keepalived高可用集群部署

    主服务器:192.168.210.104
    备服务器:192.168.210.107
    Web服务器1:192.168.210.105
    Web服务器2:192.168.210.106
    VIP地址:192.168.210.200
    NFS共享:192.168.210.103
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.部署共享存储

    7-3(192.168.210.103)
    systemctl stop firewalld.service
    setenforce 0
    #关闭防火墙
    yum install rpcbind nfs-utils -y
    #安装rpcbind nfs-utils
    systemctl start rpcbind.service
    systemctl start nfs.service
    #开启服务
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    mkdir /opt/kkk1 /opt/kkk2
    #创建两个共享目录
    echo 'this is kkk1 test web page!' > /opt/kkk1/test.html 
    echo 'this is kkk2 test web page!' > /opt/kkk2/test.html
    #准备两个页面
    ls /opt/kkk1
    ls /opt/kkk2
    #查看是否生成test.html文件
    cat /opt/kkk1/test.html
    cat /opt/kkk2/test.html
    #查看文件内容
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    vim /etc/exports
    #添加共享目录
    /opt/kkk1 192.168.210.0/24(rw,sync,no_root_squash)
    /opt/kkk2 192.168.210.0/24(rw,sync,no_root_squash)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    exportfs -rv
    #发布共享
    showmount -e
    #查看共享文件
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.配置负载调度器(主、备相同)

    systemctl stop firewalld.service
    setenforce 0
    
    yum -y install ipvsadm keepalived
    #安装ipvsadm和keepalived
    modprobe ip_vs
    #加载内核模块
    cat /proc/net/ip_vs
    #查看版本
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1)配置keeplived(主、备服务器上都要设置)

    --192.168.210.104--
    
    cd /etc/keepalived/
    cp keepalived.conf keepalived.conf.bak
    #备份
    
    • 1
    • 2
    • 3
    • 4
    • 5
    vim keepalived.conf
    #修改配置文件
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id LVS_01
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.210.200
        }
    }
    virtual_server 192.168.210.200 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 0
        protocol TCP
    
        real_server 192.168.210.105 80 {
            weight 1
            TCP_CHECK{
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
    
                }
        real_server 192.168.210.106 80 {
            weight 1
            TCP_CHECK{
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
         }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    在这里插入图片描述

    在这里插入图片描述

    #释义版
    global_defs {						#定义全局参数
    --10行--修改,邮件服务指向本地
    	smtp_server 127.0.0.1
    --12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
    	router_id LVS_01
    --14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接
    	#vrrp_strict
    }
    vrrp_instance VI_1 {				#定义VRRP热备实例参数
    --20行--修改,指定热备状态,主为MASTER,备为BACKUP
        state MASTER
    --21行--修改,指定承载vip地址的物理接口
        interface ens33
    --22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	
        virtual_router_id 10
    	#nopreempt		#如果设置非抢占模式,两个节点state必须为BACKUP,并加上配置 nopreempt
    --23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
        priority 100
        advert_int 1					#通告间隔秒数(心跳频率)
        authentication {				#定义认证信息,每个热备组保持一致
    		auth_type PASS				#认证类型
    --27行--修改,指定验证密码,主备服务器保持一致
            auth_pass 1111
        }
        virtual_ipaddress {				#指定群集vip地址
            192.168.210.200
        }
    }
    --36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
    virtual_server 192.168.210.200 80 {
        delay_loop 6					#健康检查的间隔时间(秒)
        lb_algo rr						#指定调度算法,轮询(rr)
    --39行--修改,指定群集工作模式,直接路由(DR)
        lb_kind DR
        persistence_timeout 0			#连接保持时间(秒)
        protocol TCP					#应用服务采用的是 TCP协议
    --43行--修改,指定第一个Web节点的地址、端口
        real_server 192.168.210.105 80 {
            weight 1					#节点的权重
    --45行--删除,添加以下健康检查方式		
            TCP_CHECK {
    			connect_port 80			#添加检查的目标端口
    			connect_timeout 3		#添加连接超时(秒)
    			nb_get_retry 3			#添加重试次数
    			delay_before_retry 3	#添加重试间隔
    		}
    	}
    
    	real_server 192.168.210.106 80 {		#添加第二个 Web节点的地址、端口
            weight 1
            TCP_CHECK {
    			connect_port 80
    			connect_timeout 3
    			nb_get_retry 3
    			delay_before_retry 3
    		}
    	}
    ##删除后面多余的配置##
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    systemctl start keepalived
    ip addr	
    #查看虚拟网卡vip
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    --192.168.210.107--
    
    yum -y install ipvsadm keepalived
    #安装
    modprobe ip_vs
    #加载内核模块
    cat /proc/net/ip_vs
    #查看内核版本
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    scp keeplived.conf 192.168.210.107:`pwd`
    #把keeplived.conf文件传送给备调度器
    cd /etc/keepalived
    vim keepalived.conf
    #修改备服务器配置文件
    router_id LVS_02
    state BACKUP
    priority 90
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    systemctl start keepalived
    #启动
    
    • 1
    • 2

    (2)启动 ipvsadm 服务

    --192.168.210.104---  --192.168.210.107---
    ipvsadm-save > /etc/sysconfig/ipvsadm
    systemctl start ipvsadm
    
    • 1
    • 2
    • 3
    ipvsadm -ln
    #如没有VIP 的分发策略,则重启 keepalived 服务,systemctl restart keepalived
    
    • 1
    • 2

    在这里插入图片描述

    (3)调整 proc 响应参数,关闭Linux 内核的重定向参数响应

    7-4,7-7
    vim /etc/sysctl.conf
    net.ipv4.ip_forword = 0
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    
    sysctl -p
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.配置节点服务器

    7-5,7-6
    systemctl stop firewalld
    setenforce 0
    #关闭防火墙
    yum -y install httpd
    #安装apache
    vim /etc/httpd/conf/httpd.conf
    #修改配置文件
    ServerName www.bkg.com:80
    #修改主机名
    KeepAlive off
    #在最后一行添加,LVS只能支持四层代理转发,四层代理转发会受到长连接的影响,为了保证饰演的流畅性,要关闭长连接
    systemctl start httpd
    #开启apache服务
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

    7-5
    mount 192.168.210.103:/opt/kkk1 /var/www/html/
    #把7-3服务器/opt/kkk1挂载到7-5服务器的/var/www/html/
    7-6
    mount 192.168.210.103:/opt/kkk2 /usr/share/nginx/html
    ##把7-3服务器/opt/kkk2挂载到7-6服务器的/var/www/html/目录
    df -hT
    #查看挂载
    cd /var/www/html/
    ls
    #去/var/www/html/查看是否有test.html
    cat test.html
    #查看文件内容
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    systemctl start httpd
    #开启apache服务
    ss -lntp | grep 80
    #查看80端口是否开启
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    cd /etc/sysconfig/network-scripts/
    vim ifcfg-lo:0
    #添加虚拟网卡配置
    DEVICE=lo:0
    ONBOOT=yes
    IPADDR=192.168.210.200
    NETMASK=255.255.255.255
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    ifup lo:0
    #启动虚网卡
    ifconfig
    #查看网卡
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    route -n
    #查看路由表
    route add -host 192.168.210.200 dev lo:0
    #添加路由
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    vim /etc/sysctl.conf
    #添加内核参数
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    
    sysctl -p
    #加载
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    4.测试验证

    在客户端访问 http://192.168.210.200/test.html 
    再在主服务器关闭 keepalived 服务后再测试
    systemctl stop keepalived
    http://192.168.210.200/test.html 
    #还是可以访问
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    四、抢占与非抢占模式

    keepalived的抢占与非抢占模式:
    抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。非抢占模式即MASTER恢复后不抢占BACKUP升级为MASTER后的VIP(LVS+Keepalived运用的是抢占模式)
    非抢占式俩节点state必须为bakcup,且必须配置nopreempt。
    注意:这样配置后,我们要注意启动服务的顺序,优先启动的获取master权限,与优先级没有关系了。
    
    • 1
    • 2
    • 3
    • 4
    #非抢占模式
    7-4,7-7
    vim keeplived.conf
    vrrp_instance VI_1 {
        nopreempt
        state BACKUP
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    systemctl stop keepalived
    #主、备关闭keepalived
    
    • 1
    • 2
    #先开启7-7,再启动7-4
    systemctl start keepalived
    
    ip a
    #查看虚拟网卡vip
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    在这里插入图片描述

    五、脑裂现象

    1.出现脑裂的现象:
    主和备服务器同时拥有VIP
    2.脑裂的解决方法
    关闭主服务器或备服务器其中一个的keepalived服务
    3.导致脑裂的原因?
    因为主服务器和备服务器之间的通信链路中断,导致备服务器无法正常收到主服务器发送的VRRP心跳报文
    4.如何预防脑裂的发生
    (1)主服务器与备服务器之间添加双通信链路
    (2)在主服务器上定义运行脚本去判断与备服务器通信链路是否中断,如果中断则自行关闭keepalived服务
    (3)利用第三方监控软件检测是否发生脑裂故障,如果发生则通过监控软件关闭主或者备服务器上的keepalived服务
    主ping备ping不通,有两种可能性:
    (1)主到备的链路断了
    (2)备真的坏了
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    六、Nginx+Keepalived高可用部署(四层)

    nginx负载均衡和keepalived高可用:
    7-4(192.168.210.104)
    7-7(192.168.210.107)
    
    • 1
    • 2
    • 3

    1、负载均衡

    7-4,7-7
    cd /etc/yum.repos.d/
    mkdir bak
    mv *.repo bak
    vim nginx.repo
    
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    
    yum install nginx -y
    #yum安装nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    vim /etc/nginx/nginx.conf
    stream {
    upstream backend {
       server 192.168.210.105:80;
       server 192.168.210.106:80;
    }
    server {
       listen 8080;
       proxy_pass backend;
    }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    nginx -t
    #检查语法
    systemctl start nginx
    #开启nginx
    ss -lntp | grep nginx
    #查看nginx端口是否开启
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    在浏览器访问http://192.168.210.104:8080/test.html
    #实现负载均衡
    
    • 1
    • 2

    在这里插入图片描述

    scp /etc/nginx/nginx.conf 192.168.210.107:`pwd`
    #把nginx.conf文件传送给7-7
    7-7
    systemctl start nginx
    #开启nginx
    ss -lntp | grep nginx
    #查看8080端口是否开启
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    在浏览器访问http://192.168.210.107:8080/test.html
    #实现负载均衡
    
    • 1
    • 2

    在这里插入图片描述

    2、高可用

    7-4,7-7
    yum install -y keepalived
    #安装keepalived
    
    • 1
    • 2
    • 3
    cd /etc/keepalived
    vim keepalived.conf
    #修改配置文件
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id NGINX_01
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.210.200
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    在这里插入图片描述

    7-4
    cd /etc/keepalived
    vim check_nginx.sh
    #编写脚本检测
    #!/bin/bash
    if ! killall -0 nginx &> /dev/null #如果nginx进程存在,不做任何操作
    then
      systemctl stop keepalived  #如果nginx不存在,则关闭keepalived
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    systemctl start keepalived
    systemctl status keepalived
    #启动keepalived
    chmod +x check_nginx.sh
    #给check_nginx.sh脚本执行权限
    ss -lntp | grep nginx
    #查看nginx端口是否启动,若没启动用systemctl start nginx命令启动
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    7-4
    vim keepalived.conf
    #修改配置文件
    vrrp_script check_nginx {
      script "/etc/keepalived/check_nginx.sh"
      interval 2
      weight 2
    }
    #添加检测脚本
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    ./check_nginx.sh
    #执行脚本
    systemctl status keepalived
    #查看keepalived状态
    systemctl stop nginx
    #关闭nginx
    ./check_nginx.sh
    #再执行脚本
    systemctl status keepalived
    #再查看keepalived状态
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    scp keepalived.conf check_nginx.sh 192.168.210.107:`pwd`
    #把keepalived.conf文件和check_nginx.sh脚本传送给7-7
    7-7
    cd /etc/keepalived
    ls
    #查看脚本是否存在
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    vim keepalived.conf
    #修改配置文件
    router_id NGINX_02
    state BACKUP
    priority 90
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    7-4,7-7
    systemctl start nginx
    systemctl restart keepalived
    ip a
    #查看VIP地址
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    在浏览器访问http://192.168.210.200:8080/test.html
    
    • 1

    在这里插入图片描述

    #关闭7-4的nginx,用ip a查看VIP地址,然后在7-7再查看VIP地址,发现VIP地址漂移到了7-7,再次用浏览器访问,不受影响,实现了nginx负载均衡器的高可用
    在浏览器访问http://192.168.210.200:8080/test.html
    
    • 1
    • 2

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

  • 相关阅读:
    Vue3组件库打包指南,一次生成esm、esm-bundle、commonjs、umd四种格式
    大二Web课程设计:HTML+CSS学校静态网页设计——南京师范大学泰州学院(11页)
    Elasticsearch 索引数据多了怎么办,如何调优,部署?
    JS 堆栈&内存快照& tracre跟踪
    Linux 下使用 cron 定时任务
    【历史上的今天】10 月 12 日:C 语言之父逝世;西门子诞生;乔布斯推出 NeXT 电脑
    《二进制方式搭建一个完整K8s集群》v1.20-详细版
    计算机毕设(附源码)JAVA-SSM基于JAVA的求职招聘网站的设计与实现
    【云原生 | 从零开始学Kubernetes】二十、Service代理kube-proxy组件详解
    vue组件的重新渲染的问题
  • 原文地址:https://blog.csdn.net/m0_71593537/article/details/133077515