注意:主要说明keepalived部署情况
1、环境说明
主从 | 系统 | vip | IP | 软件 |
主 | centos7.9 | 192.168.3.10 | 192.168.3.4 | keepalived+nginx |
从 | centos7.9 | 192.168.3.10 | 192.168.3.5 | keepalived+nginx |
2、部署nginx
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum repolist
yum install nginx -y
systemctl start nginx
systemctl status nginx
3、部署keepalived
1)、部署环境准备和部署
wget https://www.keepalived.org/software/keepalived-2.2.8.tar.gz
tar -zxf keepalived-2.2.8.tar.gz
yum -y install libnl libnl-devel gcc openssL-devel
cd keepalived-2.2.8
./configure --prefix=/usr/local/keepalived
make ;make install
2)配置
cd /usr/local/keepalived/etc/keepalived/
cp keepalived.conf.sample keepalived.conf
vim keepalived.conf #主节点192.168.3.4和从节点192.168.3.5存在差异,具体配置文件如下:
主配置文件
global_defs {
router_id Nginx_01
script_user root
}
vrrp_script check_nginx {
script "/usr/local/keepalived/etc/nginx/check_nginx.sh" #nginx检测脚本
interval 2
weight -5
fall 3
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33 #指定HA监测网络的接口。与本机 IP 地址所在的网络接口相同,可通过ip addr 查看
virtual_router_id 33 #虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须>是一致
priority 100 #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
advert_int 1
authentication { #设置验证类型和密码。主从必须一样
auth_type PASS #设置vrrp验证类型,主要有PASS和AH两种
auth_pass 1111 #设置vrrp验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
virtual_ipaddress { #VRRP HA 虚拟地址 如果有多个VIP,继续换行填写
192.168.3.10/24 dev ens33
}
track_script {
check_nginx
}
}
从配置文件
global_defs {
router_id Nginx_02
script_user root
}
vrrp_script check_nginx {
script "/usr/local/keepalived/etc/nginx/check_nginx.sh" #nginx检测脚本
interval 2
weight -5
fall 3
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33 #指定HA监测网络的接口。与本机 IP 地址所在的网络接口相同,可通过ip addr 查看
virtual_router_id 33 #虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须>是一致
priority 50 #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
advert_int 1
authentication { #设置验证类型和密码。主从必须一样
auth_type PASS #设置vrrp验证类型,主要有PASS和AH两种
auth_pass 1111 #设置vrrp验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
virtual_ipaddress { #VRRP HA 虚拟地址 如果有多个VIP,继续换行填写
192.168.3.10/24 dev ens33
}
track_script {
check_nginx
}
}
3)配置监控nginx脚本
vim /usr/local/keepalived/etc/nginx/check_nginx.sh
#!/bin/bash
pidof nginx
if [ $? -ne 0 ];then
systemctl stop keepalived
fi
4)服务器限制开通
防火墙
firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent
firewall-cmd --reload
4、详解配置文件参考