千家信息网

keepalived+nginx实现高可用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,安装keepalivedyum方式直接安装即可,该方式会自动安装依赖:Copyyum -y install keepalived修改主机(192.168.30.21)keepalived配置文件yum
千家信息网最后更新 2026年10月31日keepalived+nginx实现高可用

安装keepalived

yum方式直接安装即可,该方式会自动安装依赖:

Copy
yum -y install keepalived
修改主机(192.168.30.21)keepalived配置文件

yum方式安装的会生产配置文件在/etc/keepalived下:

Copy
vi keepalived.conf
keepalived.conf:

Copy
#检测脚本
vrrp_script chk_http_port {
script "/usr/local/src/check_nginx_pid.sh" #心跳执行的脚本,检测nginx是否启动
interval 2 #(检测脚本执行的间隔,单位是秒)
weight 2 #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
state MASTER # 指定keepalived的角色,MASTER为主,BACKUP为备
interface eth0 # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
virtual_router_id 66 # 虚拟路由编号,主从要一致
priority 100 # 优先级,数值越大,获取处理请求的优先级越高
advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数)
#授权访问
authentication {
auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
auth_pass 1111
}
track_script {
chk_http_port #(调用检测脚本)
}
virtual_ipaddress {
192.168.30.20 # 定义虚拟ip(VIP),可多设,每行一个
}
}
virtual_ipaddress 里面可以配置vip,在线上通过vip来访问服务。

interface需要根据服务器网卡进行设置通常查看方式ip addr

authentication配置授权访问后备机也需要相同配置

修改备机(192.168.30.22)keepalived配置文件

keepalived.conf:

Copy
#检测脚本
vrrp_script chk_http_port {
script "/usr/local/src/check_nginx_pid.sh" #心跳执行的脚本,检测nginx是否启动
interval 2 #(检测脚本执行的间隔)
weight 2 #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
state BACKUP # 指定keepalived的角色,MASTER为主,BACKUP为备
interface eth0 # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
virtual_router_id 66 # 虚拟路由编号,主从要一直
priority 99 # 优先级,数值越大,获取处理请求的优先级越高
advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数)
#授权访问
authentication {
auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
auth_pass 1111
}
track_script {
chk_http_port #(调用检测脚本)
}
virtual_ipaddress {
192.168.30.20 # 定义虚拟ip(VIP),可多设,每行一个
}
}
检测脚本:

Copy
#!/bin/bash
#检测nginx是否启动了
A=ps -C nginx --no-header |wc -l
if [ $A -eq 0 ];then #如果nginx没有启动就启动nginx
service nginx start #启动nginx
if [ ps -C nginx --no-header |wc -l -eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移
killall keepalived
fi
fi
脚本授权:chmod 775 check_nginx_pid.sh

说明:脚本必须通过授权,不然没权限访问啊,在这里我们两条服务器执行、VIP(virtual_ipaddress:192.168.30.20),我们在生产环境是直接通过vip来访问服务。

模拟nginx故障:

修改两个服务器默认访问的Nginx的html页面作为区别。

首先访问192.168.30.20,通过vip进行访问,页面显示192.168.30.21;说明当前是主服务器提供的服务。

这个时候192.168.30.21主服务器执行命令:

Copy
systemctl stop nginx; #停止nginx
再次访问vip(192.168.30.20)发现这个时候页面显示的还是:192.168.30.21,这是脚本里面自动重启。

现在直接将192.168.30.21服务器关闭,在此访问vip(192.168.30.20)现在发现页面显示192.168.30.22这个时候keepalived就自动故障转移了,一套企业级生产环境的高可用方案就搭建好了。

脚本 服务 检测 服务器 配置 网卡 优先级 密码 方式 页面 相同 文件 时候 生产 主从 周期 实例 接口 接口卡 故障 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 新华互联网科技 深圳九邦互联网科技有限公司 科技金融是不是互联网金融 互联网科技官网 盈实互联网科技 互联网巨头反垄断金融科技 互联网络科技有限公司 中国 科技 互联网 狮子座互联网科技 汇久创客互联网科技 广西互联网科技公司 互联网养老 桔豆科技 央行互联网金融科技公司 互联网科技公司有风险吗 崇明区互联网教育科技售后服务 国大互联网教育科技有限公司薪资 云南省自由互联网科技有限公司 工业互联网科技创业 银川新华互联网科技学校是国营吗 开启互联网科技时代小说 福州新华互联网科技学校 知乎 顶级互联网科技成果有哪些 互联网科技教育视频 中化能源互联网科技招聘 速维有品互联网信息科技(苏州)有限公司 科技类公司包括互联网吗 中和天地互联网科技有限公司 伍佰万互联网科技怎么赚钱 西安左小互联网科技有限公司
0