一、环境准备
| master | backup | vip |
|---|---|---|
| 192.168.1.11 | 192.168.1.12 | 192.168.146.100 |
注意:配置虚拟ip (一台机子做虚拟ip就行)
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
# 内容
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.180
NETMASK=255.255.255.255
ifup ens33:0
route add -host 192.168.10.180 dev ens33:0 (两个都要做)
1.yum -y install nginx keepalived
二.修改keeplaived 配置文件:
vi /etc/keepalived/keepalived.conf
删除原配置文件内容替换以下内容 (两台都做)
global_defs {
script_user root # 检测脚本运行的用户
enable_script_security
}
vrrp_script check_nginx {
script "/etc/keepalived/script/chk_nginx_pid.sh" # 检测本机nginx进程是否开启
interval 5 #检测间隔5秒
fall 2 # 检测两次失败将实例定义为故障,移除vip
rise 1 # 检测一次成功后将状态改为正常(设置不抢占后不会抢占vip)
#weig
}
vrrp_instance NGINX {
state MASTER #主节点为MASTER,备节点BACKUP
interface ens33 #需要绑定的网卡,通常该主机的通信网卡
virtual_router_id 42 # 同一个网络不能和其它vip重复,同一组vip必须相同,可自定义数值
priority 90 #数值越大优先级越高
#nopreempt # 设置不抢占模式
advert_int 1
authentication {
auth_type PASS #通过密码授权
auth_pass abc123
}
track_script {
check_nginx
}
virtual_ipaddress {
192.168.1.100 #VIP地址
}
}
(vip做一个就行)
(提前配好vip以及route add -host 192.168.146.100 dev ens33:0 (两个都要做)(配置一个ens33:0的网卡) )
(注意点 priority 数字越大优先级越高 也就是说第二台要比第一台小一点)

定义check_nginx检测脚本
vim chk_nginx_pid.sh
#!/bin/bash
#判断 Nginx 是否存活
countng=`ps -C nginx --no-header | wc -l`
if [ $countng -eq 0 ]; then
#如果不存活则尝试启动 Nginx
#/usr/sbin/nginx -c /etc/nginx/nginx.conf 这里注释掉
sleep 2
#等待 2 秒后再次获取一次 Nginx 状态
counter=`ps -C nginx --no-header | wc -l`
#再次进行判断,如 Nginx 还不存活则停止 Keepalived,让地址进行漂移
if [ $counter -eq 0 ]; then
systemctl stop keepalived #停用keepalived服务
fi
fi
[root@nginx-server script]# chmod +x chk_nginx_pid.sh
vim /etc/hosts
192.168.146.200 www.cat.com 指向VIP地址
cat /etc/nginx/nginx.conf
server {
listen 80;
server_name www.cat.com;
.....
location / {
root html;
index index.html index.htm;
}
....
修改网页内容 (master和backup)
echo 'wo shi 192.168.1.11' > /usr/share/nginx/html/index.html
echo 'wo shi 192.168.1.12' > /usr/share/nginx/html/index.html
systemctl start nginx keepalived 重启一下
ip a查看
检验
故障模拟
systemctl stop keepalived
ip a


1385

被折叠的 条评论
为什么被折叠?



