千家信息网

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安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 互联网科技公司起名 云之行互联网科技 高科技互联网 互联网科技金融公司 艾特科技互联网 互联网科技创新企业排名 安控科技rtu产品工业互联网 上海宁丞科技互联网 世界互联网科技公司市值排名 链环科技传统企业怎么转型互联网 天津腾达互联网科技有限公司 迪庆互联网科技招生 佛山市翊博互联网络科技有限公司 中国互联网有什么科技 35岁以上互联网科技行业 科技和互联网行业的特点 科技互联网公司两年变化 高科技和互联网的现代国家 株洲百竞科技的互联网营销顾问 互联网科技海报 山东特亿宝互联网科技有限公司 A股互联网金融科技公司 互联网是不是新科技 互联网科技视频 互联网科技logo设计 顺网科技2021年互联网排名 来此购互联网科技有限公司 中国新注册互联网科技 数字科技和互联网金融哪个好
0