keepalived保活nginx1,nginx2

1    下载两个小玩意

  yum -y install keepalived

   yum install psmisc  -y

  

2    配置nginx1,2自启脚本

vim /root/shell/check-nginx.sh          我的脚本放在root/shell里

#!/bin/bash
#获取nginx正在运行的进程数
npsnum=`ps -C nginx --no-header | wc -l`

if [ $npsnum == 0 ]; then
  #等0说明nginx没启动
   /usr/local/nginx/sbin/nginx
  #再次判断nginx是否活着
  if [ `ps -C nginx --no-header | wc -l` == 0 ]; then
    #等0说明nginx启动失败
      killall  keepalived
  fi

fi

 chmod +x  /root/shell/check-nginx.sh      

3    测试脚本是否能用

ll   /root/shell/check-nginx.sh 

ps -ef |grep nginx |grep -v grep    (有的话杀死)

kill -9 1304    kill -9  1306           (我的有我杀)

 ps -ef |grep nginx |grep -v grep  再次查看

./check-nginx.sh   启动  (进脚本目录可以这样,没进去全路径)

ps -ef |grep nginx |grep -v grep     再次查看

4    nginx-1keepalived配置 

vim /etc/keepalived/keepalived.conf      如果错了cat /var/log/messages可以看

   ! Configuration File for keepalived

global_defs {
   #唤醒邮箱配置
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   #配置邮件服务器连接超时时间
   smtp_connect_timeout 30
   #路由id,唯一的,当前机子
   router_id LVS_27
}
#vrrp脚本   名字与下面track_script里面的名字一致
vrrp_script aaa {
   script "/root/shell/check-nginx.sh"
   #调用脚本间隔时间 秒 不配默认1秒
   interval 2
   weight -1
}
vrrp_instance VI_1 {
     #服务器状态
    state MASTER
     #当前实例绑定的网卡接口
    interface ens33 
      #虚拟路由id,主备必须相同,相同为一组
    virtual_router_id 51 
   #优先级取值1-255,master一般比backup高50
    priority 100
    #主备心跳间隔时间 单位是秒
    advert_int 1 
    #认证  主备切换时,进行认证  主备必须相同
    authentication { 
        auth_type PASS
        auth_pass 1111
    }   
    #虚拟ip配置 LVS=IPVS   keepavlied虚拟出的ip
    virtual_ipaddress {
         #虚拟IP 必须和要和保活的软件所在的主机的IP的网段一致
        192.168.58.188 
    }   
    #追踪脚本
    track_script {
      aaa
}     
}

service keepalived start   启动

5    nginx-2 keepalived配置 

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   #唤醒邮箱配置
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   #配置邮件服务器连接超时时间
   smtp_connect_timeout 30
   #路由id,唯一的,当前机子
   router_id LVS_28
}
#vrrp脚本 名字与下面track_script里面的名字一致,脚本路径
vrrp_script aaa {
   script "/root/shell/check-nginx.sh"
   #调用脚本间隔时间 秒 不配默认1秒
   interval 2
   weight 1
}
     #服务器状态
    state BACKUP
     #当前实例绑定的网卡接口
    interface ens33 
      #虚拟路由id,主备必须相同,相同为一组
    virtual_router_id 51 
   #优先级取值1-255,master一般比backup高50
    priority 50
    #主备心跳间隔时间 单位是秒
    advert_int 1 
    #认证  主备切换时,进行认证  主备必须相同
    authentication { 
        auth_type PASS
        auth_pass 1111
    }   
    #虚拟ip配置 LVS=IPVS   keepavlied虚拟出的ip
    virtual_ipaddress {
         #虚拟IP 必须和要和保活的软件所在的主机的IP的网段
一致     
        192.168.58.188
    }   
    #追踪脚本
    track_script {
      aaa
}     
} 

service keepalived start   启动

6    配置后

黑窗口     arp -a 192.168.58.188    查看虚拟ip在nginx-1机子上   00-0c-29-d4-55-dc 

                ping  -t 192.168.58.188      可以一直ping

nginx-1         killall keepalived      黑窗口会出现连接超时,然后 继续ping

     结束这次ping

      再次  黑窗口     arp -a 192.168.58.188    查看虚拟ip在nginx-2机子上  00-0c-29-e9-a0-36

       再次        ping  -t 192.168.58.188      

      service   keepalived  start    启动   再次出现 

结束这次ping

  黑窗口     arp -a 192.168.58.188    查看虚拟ip在nginx-1机子上   00-0c-29-d4-55-dc 

7   keepalived   作用  目的

高可用  和   负载均衡

Keepalived的作用是检测服务器(目前保活的是nginx,可以保活其他软件)的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

      Keepalived 是一个用 C 语言编写的路由软件。这个项目的主要目标是为 Linux 系统和基于 Linux 的基础设施提供简单而强大的负载平衡和高可用性设施 。底层基于VRRP( Virtual Router Redundancy Protocol,简称VRRP)协议编写。VRRP作用:它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱。

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值