目录

Keepalived安装

keepalived安装

1. 安装依赖

1
yum install -y openssl-devel

2. 准备安装包

keepalived-2.2.7.tar.gz

将包解压在/usr/local/src/nginx-1.22.0

3. 创建对应目录

mkdir /usr/local/src/keepalived-2.2.7

4. 编译安装keepalived

1
2
3
4
cd /usr/local/src/nginx-1.22.0/keepalived-2.2.7
./configure --prefix=/usr/local/src/keepalived-2.2.7
make
make install

5. 拷贝执行文件到对应目录

1
2
3
4
cp -r /usr/local/src/nginx-1.22.0/keepalived-2.2.7/keepalived/etc/init.d/ /etc/init.d/
cp /usr/local/src/nginx-1.22.0/keepalived-2.2.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/src/nginx-1.22.0/keepalived-.2.27/keepalived/keepalived /usr/sbin/
cp -r /usr/local/src/keepalived-2.2.7/etc/keepalived /etc/

编辑/etc/keepalived/keepalived.conf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
  notificaiton_email {
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 127.0.0.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_http_port {
  script "/etc/keepalived/check_nginx.sh"
  interval 2
  weight 2
}

vrrp_instance VI_1 {
  state BACKUP
  nopreempt
  interface ens192
  virtual_router_id 51
  priority 150
  advert_int 1
  authencation {
    auth_type PASS
    auth_pass 1111
  }
  track_script {
    chk_http_port
  }
  virtual_ipaddress {
    10.xx.xx.xx/xx
  }
}

6. 启动keepalived

启动命令keepalived

查看虚拟ip是否存在

7. 设置开机自启

systemctl enable keepalived

8.设置nginx健康检查脚本

编辑/etc/keepalived/check_nginx.sh

1
2
3
4
5
6
7
# vim /etc/keepalived/check_nginx.sh

#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ]; then
  killall keepalived
fi