centos7中Nginx+Keepalived高可用集群配置

本文详细介绍如何使用Keepalived和Nginx搭建高可用集群,包括主机和备用机的IP配置,Keepalived配置文件详解,以及通过脚本监控Nginx状态。同时提供curl命令验证集群效果的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IP配置说明

主机:192.168.12.106
备用机:192.168.12.107
VIP: 192.168.12.100

1、安装keepalived+nginx

yum -y install keepalived

nginx安装可参考:https://blog.youkuaiyun.com/lglspace/article/details/100577118

2、配制文件

主机 /etc/keepalived/keepalived.conf
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 LVS_DEVEL
   vrrp_skip_check_adv_addr
  # vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_nginx_status {
  script "/usr/local/tools/chk_nginx_status.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface enp0s3
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
      chk_nginx_status
    }
    virtual_ipaddress {
        192.168.12.100
    }
}
备用机 /etc/keepalived/keepalived.conf
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 LVS_DEVEL
   vrrp_skip_check_adv_addr
#   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_nginx_status {
  script "/usr/local/tools/chk_nginx_status.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface enp0s3
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
      chk_nginx_status
    }
    virtual_ipaddress {
        192.168.12.100
    }
}
脚本文件 /usr/local/tools/chk_nginx_status.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then             
      /usr/local/nginx-1.16.1/sbin/nginx               
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
              killall keepalived                    
      fi
fi

3、查看效果

curl 192.168.12.100

注意点:·

/etc/keepalived/keepalived.conf文件在书写时,大括号前面的空格是必须的!
 ip a  #可以查看虚拟IP是否有挂载到机器上
systemctl status keepalived #可以查看keepalive的一些状态信息,配制文件的语法有异常,会在这里面有体现出来
killall命令,需要安装才能用: yum -y install psmisc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值