使用keepalived 作为nginx负载均衡,nginx服务断掉后,keepalived 没有停掉,检测脚本不执行什么原因?

keepalived配置:

! 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_connect_timeout 30
   router_id $HOSTNAME
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}

#check nginx service
   vrrp_script chk_nginx_pid {
   script "/usr/local/keepalived/chk_nginx.sh"
   interval 2
   weight -20
}

vrrp_instance VI_1 {
    #state MASTER
    state BACKUP
    nopreempt
    interface ens160
    virtual_router_id 51
    mcast_src_ip 192.168.14.157
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass CARMANAGER
    }
    virtual_ipaddress {
        192.168.14.161
    }
    unicast_src_ip 192.168.14.157
    unicast_peer {
        192.168.14.158
    }
    track_script {
        chk_nginx_pid
    }
}

检测脚本:
image.png

阅读 4.1k
2 个回答

先确定一点 你的这个 chk_nginx.sh 里 会先尝试重启 nginx ,如果重启失败了.才会关闭 keepalived,让 keepalived 切换. 你测试过程中,这个重启 nginx 会成功吗?

脚本的权限检查一下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题