1 准备两台机器
A机器:192.168.0.109
B机器:192.168.0.108
A级器作为master,B机器作为backup
2 关闭防火墙
systemctl stop firewalld 关闭firewalld
iptables -nvL查看防火墙
setenforce 0 临时关闭selinux
getenforce命令查看是否为Permissive
3.安装 keepalived
yum install -y keepalived
默认的配置文件路径在
/etc/keepalived/keepalived.conf
清空配置文件
> /etc/keepalived/keepalived.conf
编辑配置文件
vim /etc/keepalived/keepalived.conf
修改配置文件
global_defs {
notification_email {
[email protected]
}
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP #备用
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.100/24 dev ens33 label ens33:1 #虚拟ip
}
}
----------------------------------------------------------------------------------------
定义监控脚本
脚本路径在keepalived配置文件中有定义,路径为/usr/local/sbin/check_ng.sh
vim /usr/local/sbin/check_ng.sh
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
/etc/init.d/nginx start
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
脚本创建完之后,还需要改变脚本的权限(不更改权限,就无法自动加载脚本,那就无法启动keepalived服务)
chmod 755 /usr/local/sbin/check_ng.sh
启动keepalived
systemctl start keepalived
查看是否启动成功
ps aux |grep keepalived
------------------------------------------------------------------------------------------
ip add 查看vip是否在机器上
4.安装nginx
yum install nginx -y
systemctl start nginx //启动nginx systemctl enable nginx //加入开机启动
ps -ef | grep nginx 查看nginx 是否存活
编辑nginx的默认页面
cat /usr/share/nginx/html/index.html 修改标识为了区分 访问的那个nginx
------------------
主备两台电脑都根据上面安装 ,唯一区别的是 keepalive, 配置文件 主 用 MASTER ,备:BACKUP
两台电脑keepalivep 和nginx 启动, 在备的的电脑上 ip add是看不到虚拟ip的(192.168.0.100)
当你关掉主的keepalived 在备用机器上 就会自动加上 vip
测试访问192.168.0.100:nginx端口 然后第一次出现的是主机上的,关掉主机keepalived,访问电脑 ,访问的是备机的nginx
相关文档