加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 运营中心 > LNMP > 正文

linux系统lnmp架构keepalived高可用

发布时间:2023-02-17 13:59:21 所属栏目:LNMP 来源:互联网
导读:keepalived 注意:任何软件都可以使用keepalived来做高可用 keepalived如何实现高可用 VRRP:虚拟路由冗余协议 比如公司的网络是通过网关进行上网的,那么如果该路由器故障了,网关无法转发报文了,此时所有人都无法上网了,怎么办? 通常做法是给路由器增加

  *****下面是调用变量****************************     
  #track_script {                              *
  #    check_ssh                               *
                                               *    
  #    }                                       *
  **********************************************
  }
  [root@lb02 conf.d]# vim /etc/keepalived/keepalived.conf
  global_defs {
      router_id lb02
  }
  #vrrp_script check_ssh {
  #    script "/root/Nginx_keep.sh"
  #    interval 5
  #}
  vrrp_instance VI_1 {
      state BACKUP
      interface eth0
      virtual_router_id 50
      priority 100
      nopreempt
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      virtual_ipaddress {
          10.0.0.3
      }
  #vrrp_script {
  #    check_ssh
  #    }
  }
  # 判断Nginx是否存活脚本内容(如果是抢占式只需要写在主节点上面,如果是非抢占式主备节点都需要配置)
  [root@lb01 ~]# cat Nginx_keep.sh
  #!/bin/sh
  Nginx_status=$(ps -C Nginx --no-header|wc -l)
  #1.判断Nginx是否存活,如果不存活则尝试启动Nginx
  if [ $Nginx_status -eq 0 ];then
      systemctl start Nginx
      sleep 3
      #2.等待3秒后再次获取一次Nginx状态
      Nginx_status=$(ps -C Nginx --no-header|wc -l)
      #3.再次进行判断, 如Nginx还不存活则停止Keepalived,让地址进行漂移,并退出脚本  
      if [ $Nginx_status -eq 0 ];then
          systemctl stop keepalived
     fi
  fi
  ***# 让Nginx不重启执行下面脚本***
  #!/bin/sh
  Nginx_status=$(ps -C Nginx --no-header|wc -l)
  if [ $Nginx_status -eq 0 ];then
          systemctl stop keepalived
  fi
  **就是检测到Nginx没有存活直接停掉keepalived,转移到备节点上**
  # 脚本编辑完成后要加执行权限
  [root@lb01 ~]# chmod +x Nginx_keep.sh
  # 部署完成后启动keepalived两台都要启动,然后看一下10.0.0.3的IP绑定在哪台机器上面
  [root@lb01 ~]# systemctl start keepalived
  [root@lb02 ~]# systemctl start keepalived
  [root@lb01 ~]# ip a|grep 10.0.0.3
  [root@lb02 conf.d]# ip a|grep 10.0.0.3
      inet 10.0.0.3/32 scope global eth0
  # 关闭lb02再看一下是不是发生变化
  [root@lb02 conf.d]# systemctl stop keepalived
  [root@lb02 conf.d]# ip a|grep 10.0.0.3
  [root@lb01 ~]# ip a|grep 10.0.0.3
      inet 10.0.0.3/32 scope global eth0
  # 这时候可以看到发生了变化,再编辑一个脚本在别的服务器上面监控一下访问状态
  [root@nfs ~]# cat wzfwtest.sh
  #!/bin/bash
  while true;do
          code_status=$(curl -I -m 10 -o /dev/null -s -w %{http_code} blog.test.com)
          if [ $code_status -eq 200 ];then
                  echo "$(date +%F-%T)_网站访问成功" >> /tmp/web.log
          else
                  echo "$(date +%F-%T)_网站访问失败,状态码是: $code_status" >> /tmp/web.log
          fi
          sleep 1
  done
  # 打开lb01主节点keepalived关联Nginx的配置,然后把域名10.0.0.3做解析
  [root@lb01 ~]# cat /etc/keepalived/keepalived.conf
  global_defs {                   #全局配置
      router_id lb01              #标识身份->名称
  }
  vrrp_script check_ssh {
      script "/root/Nginx_keep.sh"
      interval 5
  }
  vrrp_instance VI_1 {
      state MASTER                #标识角色状态
      interface eth0              #网卡绑定接口
      virtual_router_id 50        #虚拟路由id
      priority 150                #优先级
      nopreempt
      advert_int 1                #监测间隔时间
      authentication {            #认证
          auth_type PASS          #认证方式
          auth_pass 1111          #认证密码
      }
      virtual_ipaddress {         
          10.0.0.3                #虚拟的VIP地址
      }
  track_script {
      check_ssh
      
      }
  }
  [root@nfs ~]# cat /etc/hosts
  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  10.0.0.3 blog.test.com zh.test.com
  # 域名绑定在10.0.0.3上面
 
  # 抢占式和非抢占式的配置
  1、两个节点的state都必须配置为BACKUP
  2、两个节点都必须加上配置 nopreempt
  3、其中一个节点的优先级必须要高于另外一个节点的优先级。
  两台服务器都角色状态启用nopreempt后,必须修改角色状态统一为BACKUP,唯一的区分就是优先级。
  Master配置
      vrrp_instance VI_1 {
          state BACKUP
          priority 150
          nopreempt

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读