一、keepalive介绍

1.1 keepalived介绍

keepalived介绍

1.2 nginx+keepalived架构图

image.png

二、配置nginx+keepalived

2.1 安装nginx

安装Nginx

2.2 安装keepalived

keepalived安装

2.3 配置keepalived

2.3.1 nginx01(192.168.10.3)keepalived配置

  1. /etc/keepalived/keepalived.conf
  2. ! Configuration File for keepalived
  3. global_defs {
  4. router_id LVS_01 # router_if LVS_02
  5. }
  6. vrrp_instance VI_1 {
  7. state MASTER # BACKUP
  8. interface eth33 # 通信端口 通过ip addr可以看到 根据自己的机器配置
  9. virtual_router_id 51 # vrrp实例id keepalived集群,实例id必须一致
  10. priority 100 # 从:99
  11. advert_int 1
  12. authentication {
  13. auth_type PASS
  14. auth_pass 1111
  15. }
  16. virtual_ipaddress { # 自定义虚拟IP
  17. 192.168.10.111
  18. }
  19. }

2.3.2 nginx02(192.168.10.4)keepalived配置

/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id LVS_02
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth33
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
            192.168.10.111
    }
}

2.3.3 nginx01,02添加检测脚本

1) 创建脚本 vim /usr/local/src/nginx_check.sh

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`                                           #统计nginx进程是否存在
if [ $A -eq 0 ];then                                                #为0,表明nginx停止了
      /usr/local/nginx/sbin/nginx                                    #尝试重启nginx
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then  #nginx重启失败,则keepalived自杀,进行VIP转移
              killall keepalived                                                #杀掉,vip就漫游到另一台机器                
      fi
fi

2) 修改keepalived配置,添加脚本 vim /etc/keepalived/keepalived.conf

vrrp_script nginx_check{
        script "/usr/local/src/nginx_check.sh"
      interval 2    #检测脚本执行间隔时间  单位秒
}
track_script{
        nginx_check    #调用检测脚本
}

三、启动nginx和keepalived

systemctl start nginx
systemcat start keepalived