永不落伍 发表于 2018-12-30 07:53:39

Keepalived + nginx的安装部署

  主机:IP->192.168.88.60 nginx已安装OK(省略)
备机:IP->192.168.88.80 nginx已安装OK(省略)
VIP:192.168.88.20

  第一步:主备一起安装keepalived   
yum install -y keepalived

  第二步:配置/etc/keepalived/keepalived.conf
主机192.168.88.60配置如下:
  ! Configuration File for keepalived
  global_defs {
   notification_email {#发生邮件目标地址
  acassen@firewall.loc
   failover@firewall.loc
   sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc   #发生邮件源地址
  smtp_server 192.168.200.1 #SMTP 服务器地址
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
   vrrp_script chk {
   script "/etc/chk_nginx.sh"   
   interval 2   #间隔多久检测脚本      
   weight -20   #脚本返回结果非0,优先级减20
}
vrrp_instance VI_1 {
    state BACKUP   #主的也设置备,以为主备取决于优先级
    interface eth0#对应网卡
    virtual_router_id 51
    priority 90    #优先级,谁大谁是主(取值1-255之间)
  #nopreempt   #开启这个参数当优先级大的主服务恢复了也不抢占,以防跳来跳去
  advert_int 1
    authentication {
      auth_type PASS
      auth_pass 1111   #密码
    }
    track_script {                  
      chk   # 对应上面的监测脚本模块
    }
    virtual_ipaddress {
      192.168.88.20#VIP地址
    }
}
==============================================================
  备机配置: 192.168.88.80
  ! Configuration File for keepalived
  global_defs {
   notification_email {#发生邮件目标地址
  acassen@firewall.loc
   failover@firewall.loc
   sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc   #发生邮件源地址
  smtp_server 192.168.200.1 #SMTP 服务器地址
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
   vrrp_script chk {
   script "/etc/chk_nginx.sh"   
   interval 2   #间隔多久检测脚本      
   weight -20   #脚本返回结果非0,优先级减20
}
vrrp_instance VI_1 {
    state BACKUP   #设置备用状态
    interface eth0#对应网卡
    virtual_router_id 51
    priority 80    #优先级(90-20=70 小于80,如果主服务没有问题,优先级为90,如果有问题优先级变为70,备的设置为80,80>70 所以备成主接管)
    advert_int 1
    authentication {
      auth_type PASS
      auth_pass 1111   #密码
    }
    track_script {                  
      chk   # 对应上面的监测脚本模块
    }
    virtual_ipaddress {
      192.168.88.20#VIP地址
    }
}
  #注意不要少大括号哦
  ============================================
  第三步:编写/etc/chk_nginx.sh脚本内容
  #!/bin/bash
nginx_pid_count=`lsof -i :80 |wc -l`
if [ ${nginx_pid_count} -eq 0 ];then
exit 1
else
exit 0
fi
fi
  给脚本权限 chmod +x /etc/chk_nginx.sh
  第四步:启动主备keepalived
Service keepalived start
ip addr 查看vip是否起来了
  #主服务器上关闭服务
  /etc/init.d/nginx stop
#在从服务器上查看VIP有无绑定
  ip addr
  备注:
  1 如果没有成功检测是不是{ }少写了
  2 sh 测试监控脚本是否正确



页: [1]
查看完整版本: Keepalived + nginx的安装部署