keepalived nginx高可用

编辑/etc/keepalived/keepalived.conf文件,添加以下内容:

global_defs {
router_id nginx_master # 唯一标识
}

vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx_port.sh"
interval 2 # 检测间隔(秒)
timeout 2 # 脚本超时时间
weight -20 # 失败时优先级降低值
}

vrrp_instance VI_1 {
state MASTER
interface ens33 # 网卡名(需修改)
virtual_router_id 250 # 集群内唯一ID
priority 100 # 初始优先级(主>备)

advert_int 1
authentication {
auth_type PASS
auth_pass 1111 # 集群密码
}

virtual_ipaddress {
192.168.91.200/24 # VIP地址(需修改)
}

track_script {
chk_nginx # 引用监控脚本
}
}

创建/etc/keepalived/check_nginx_port.sh文件,添加以下内容:

#!/bin/bash
# 使用curl检测HTTP服务状态
TIMEOUT=2 # 超时时间(秒)
CHECK_URL="http://127.0.0.1:80" # 检测地址

# 获取HTTP状态码
http_code=$(curl -sL -w "%{http_code}" -m $TIMEOUT "$CHECK_URL" -o /dev/null)

# 判断状态码(200/301/302均视为正常)
if [[ "$http_code" =~ ^(200|301|302)$ ]]; then
exit 0 # 服务正常
else
exit 1 # 服务异常
fi

设置脚本权限:

chmod +x /etc/keepalived/check_nginx_port.sh

安装nginx服务:

yum install nginx -y

启动nginx服务:

systemctl start nginx

启动keepalived服务:

systemctl start keepalived

查看keepalived服务状态:

systemctl status keepalived

设置开机启动:

systemctl enable keepalived
文章作者: 慕容峻才
文章链接: https://www.acaiblog.top/keepalived-nginx高可用/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿才的博客
微信打赏
支付宝打赏