配置keepalived支持nginx高可用

实验环境

序号主机名IP地址
1nginx1192.168.204.11
2nginx2192.168.204.12

安装nginx

安装nginx

yum install -y epel-*
yum install -y nginx

编写HTML文件
nginx1上

echo -e "nginx1" > /usr/share/nginx/html/index.html

nginx2上

echo -e "nginx2" > /usr/share/nginx/html/index.html

启动nginx

systemctl start nginx
systemctl enable nginx
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

访问浏览器

1222343-20190521165553579-1829658067.png

1222343-20190521165556874-1279291341.png

安装配置keepalived

1.安装keepalived

yum install keepalived -y

2.在nginx1上配置keepalived
修改配置文件

vim /etc/keepalived/keepalived.conf

1222343-20190521165614783-1907761391.png

启动

systemctl start keepalived
systemctl enable keepalived

3.在nginx2上配置keepalived
修改配置文件

vim /etc/keepalived/keepalived.conf

1222343-20190521165624281-1220254893.png

启动

systemctl start keepalived
systemctl enable keepalived

4.在宿主机ping 192.168.204.10,使用arp -a查看缓存

1222343-20190521165636415-1480145379.png

5.浏览器访问虚拟地址

1222343-20190521165649593-1713729690.png

6.在nginx1上宕掉ens33网卡

在宿主机使用arp -a查看缓存

1222343-20190521165656136-664545351.png

在主机使用浏览器访问虚拟地址

1222343-20190521165708163-190166529.png

可以看到,对192.168.204.10的请求已从nginx1节点转移到了nginx2节点

配置keepalived支持nginx高可用

1.编写NGINX状态监测脚本

编写脚本/etc/keepalived/nginx_check.sh

#!/bin/bash
# file:/etc/keepalived/nginx_check.sh
N=`ps -C nginx --no-header | wc -l`
if [ $N -eq 0 ]; then
    systemctl restart nginx
    sleep 2
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
        killall keepalived
    fi
fi

1222343-20190521165720595-785038724.png

赋予可执行权限

chmod +x /etc/keepalived/nginx_check.sh

测试脚本

1222343-20190521165729565-48476106.png

2.配置keepalived支持NGINX高可用

在nginx1节点上编辑/etc/keepalived/keepalived.conf

vim /etc/keepalived/keepalived.conf

1222343-20190521165738781-304843435.png

重新启动keepalived

systemctl restart keepalived

3.测试高可用

浏览器访问虚拟地址

1222343-20190521165801134-892670652.png

在nginx1节点运行stop.sh脚本,然后使用浏览器访问虚拟地址

#!/bin/bash
# file:stop.sh
for ((i=0; i<=100; i++))
do
    systemctl stop nginx
    echo 'stoped. sleep 1s...'
    sleep 1
done

1222343-20190521165809438-1726894289.png

1222343-20190521165824235-1674477965.png

转载于:https://www.cnblogs.com/connect/p/nginx-keepalived-high-availability.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值