登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
Keepalived+Nginx 高可用(主从模式)
Keepalived+Nginx 高可用(主从模式)
[ 复制链接 ]
副我
2025-6-6 13:49:01
1. 环境说明
vip
ip
操作系统
nginx端口
主从说明
192.168.115.150
192.168.115.148
CentOS Linux release 7.6.1810 (Core)
8443
主节点
192.168.115.150
192.168.115.149
CentOS Linux release 7.6.1810 (Core)
8443
从节点
2台机器都需部署nginx和keealive服务,nginx配置文件保持一致,keepalive服务配置存在差异
2. 部署nginx
3. 部署keepalive
3.1 安装
1、下载
wget https://www.keepalived.org/software/keepalived-2.2.2.tar.gz
2、解压
tar -zxvf keepalived-2.2.2.tar.gz
3、安装依赖
yum -y install libnl libnl-devel
否则,会报错编译会报错:*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
4、编译安装
cd keepalived-2.2.2
./configure --prefix=/usr/local/keepalived
make && make install
复制代码
3.2 修改配置
1、修改keepalive配置
cp -raf /usr/local/keepalived/etc/keepalived/keepalived.conf /usr/local/keepalived/etc/keepalived/keepalived.conf_default
vim /usr/local/keepalived/etc/keepalived/keepalived.conf
复制代码
主节点192.168.115.148和从节点192.168.115.149存在差异,具体配置文件如下:
复制代码
主节点192.168.115.148
:/usr/local/keepalived/etc/keepalived/keepalived.conf配置如下:
global_defs {
router_id Nginx_01
script_user root
}
vrrp_script check_nginx {
script "/usr/local/nginx/keepalived/check_nginx.sh" #nginx检测脚本
interval 2
weight -5
fall 3
rise 2
}
vrrp_instance VI_1 {
state MASTER
interface ens192 #指定HA监测网络的接口。与本机 IP 地址所在的网络接口相同,可通过ip addr 查看
virtual_router_id 33 #虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须是一致
priority 100 #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
advert_int 1
authentication { #设置验证类型和密码。主从必须一样
auth_type PASS #设置vrrp验证类型,主要有PASS和AH两种
auth_pass 1111 #设置vrrp验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
virtual_ipaddress { #VRRP HA 虚拟地址 如果有多个VIP,继续换行填写
192.168.115.150
}
track_script {
check_nginx
}
}
复制代码
<strong><br><strong>从节点192.168.115.149</strong>:/usr/local/keepalived/etc/keepalived/keepalived.conf配置如下:<br></strong>
复制代码
global_defs {
script_user root
router_id Nginx_02
}
vrrp_script check_nginx {
script "/usr/local/nginx/keepalived/check_nginx.sh"
interval 2
weight -5
fall 3
rise 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 33
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.115.150
}
track_script {
check_nginx
}
}
复制代码
2、新建nginx检测脚本
vim /usr/local/nginx/keepalived/check_nginx.sh
chmod +x /usr/local/nginx/keepalived/check_nginx.sh
复制代码
主从节点192.168.115.148/149 nginx检测脚本一致,/usr/local/nginx/keepalived/check_nginx.sh配置文件如下:
! /bin/bash
pidof nginx
if [ $? -ne 0 ];then
systemctl stop keepalived
fi
复制代码
3.3 启动
#开机自启动
systemctl enable keepalived
#查看状态
systemctl status keepalived
#启动
systemctl start keepalived
#加载配置
systemctl daemon-reload
#重启
systemctl restart keepalived
复制代码
3.4 特殊说明
如未遇到以下情况,忽略即可
1、启动问题
直接启动如果报错,可能是systemctl管理未指定配置文件,修改配置systemctl自启动文件,重新加载配置文件并重新启动keepalive
vim /usr/lib/systemd/system/keepalived.service
[Unit]
Description=LVS and VRRP High Availability Monitor
After=network-online.target syslog.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/keepalived.pid
KillMode=process
EnvironmentFile=-/usr/local/keepalived/etc/sysconfig/keepalived
#ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS ##注释默认
ExecStart=/usr/local/keepalived/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf ##指定配置文件
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
复制代码
2、防火墙配置
主从节点启动keepalived之后, 正常情况下vip只在主节点上存在,而从节点在主节点故障时接管VIP。
如果发现VIP在两个节点上同时存在,要配置防火墙以防止VIP在两个节点上同时存在,需要确保VRRP协议能够在两个节点间正常通信
#允许VRRP协议通过防火墙
firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent
#重新加载 firewalld
firewall-cmd --reload
复制代码
4. 高可用测试
1、主从2个节点分别先启动nginx服务再keepalived服务,确保vip只在主节点上存在
2、模拟主节点nginx服务停止:停止nginx服务
检查主节点keepalived和vip情况,正常情况为:主节点keepalived停止,vip漂移到从节点,流量转移到从节点
3、模拟主节点nginx服务恢复:启动nginx服务和keepalived服务
检查vip情况,正常情况为:vip漂移到主节点,流量转移到主节点,从节点恢复空间状态
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
Keepalived
Nginx
高可用
可用
主从
相关帖子
Nginx 日志轮转实战指南:按天、周、月、年自动切割与归档(附完整案例)
nginx健康检查详解
mysql 主从架构详解
Nginx反向代理Kafka集群
从零构建高可用 API 网关:鉴权、路由、性能优化全解析
搭建MySQL主从
【译】GPT-5 现已在 Visual Studio 中可用
达梦数据库高可用集群部署方案
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
Nginx 日志轮转实战指南:按天、周、月、年自动切割与归档(附完整案例)
0
257
拓拔梨婷
2025-07-30
业界
nginx健康检查详解
0
631
鞭氅
2025-08-14
业界
mysql 主从架构详解
0
1049
何书艺
2025-08-15
业界
Nginx反向代理Kafka集群
0
422
臧莞然
2025-08-16
业界
从零构建高可用 API 网关:鉴权、路由、性能优化全解析
0
898
拼潦
2025-08-20
安全
搭建MySQL主从
0
77
裒噎
2025-08-21
业界
【译】GPT-5 现已在 Visual Studio 中可用
0
97
汤昕昕
2025-08-22
业界
达梦数据库高可用集群部署方案
0
929
轧岔
2025-09-03
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
副我
2025-6-6 13:49:01
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多