讲师中心 微信公众号
AI工具推荐 视频效率加速

Nginx 中故障排查怎么通过错误日志排查主备高可用切换时的异常

浅磊吖_4538

浅磊吖_4538

发布时间:2026-08-23 14:02:35

|

577人浏览过

|

来源于php中文网

原创

Nginx在主备切换中不参与决策,但因状态错位、配置不一致或依赖异常而报错;需结合error.log时间戳、Keepalived日志及系统日志交叉验证,重点排查端口冲突、上游连接拒绝、配置文件缺失三类典型错误。

nginx 中故障排查怎么通过错误日志排查主备高可用切换时的异常

主备高可用切换时 Nginx 本身不直接参与“主备切换逻辑”(那是 Keepalived、HAProxy 或自研控制器的事),但作为被调度的服务,它常因切换过程中的状态错位、配置不一致或依赖异常而报错。错误日志是定位这类问题的第一手证据——关键不是“有没有报错”,而是“在什么时机、由谁触发、伴随什么上下文”。

确认 Nginx 是否真被卷入了切换事件

很多所谓“切换异常”其实是误判:Nginx 进程根本没重启,只是 VIP(虚拟 IP)漂移导致客户端连不上。先验证:

  • 检查 error.log 时间戳是否与切换时间吻合(例如 Keepalived 发生 MASTER→BACKUP 切换的时刻)
  • 用 journalctl -u keepalived -n 30 --since "2026-08-20 14:00:00" 对齐时间轴,看是否有 Transition to MASTER STATE 或 VRRP_Instance(vi_1) Entering FAULT STATE
  • 如果 Nginx 日志在切换前后无新增,说明它未被 reload 或重启,问题大概率出在网络层或客户端 DNS 缓存

重点筛查三类典型 error_log 线索

主备切换期间,Nginx 错误日志中高频出现且具诊断价值的报错有:

Nginx Config Linter
Nginx Config Linter

对 Nginx 配置文件进行语法检查、验证和安全、性能审计。

下载
  • bind() to 0.0.0.0:80 failed (98: Address already in use):VIP 漂移后,原 BACKUP 节点上的 Nginx 未及时停止,新 MASTER 节点尝试启动时端口冲突。需检查 Keepalived 的 notify_script 是否正确执行了 nginx -s stop
  • connect() failed (111: Connection refused) while connecting to upstream:切换后 Nginx 仍尝试连接已下线的旧上游(如老 Master 数据库),说明 upstream 配置未随角色动态更新,或 health_check 未生效
  • open() "/etc/nginx/conf.d/active.conf" failed (2: No such file or directory):脚本化切换(如通过 Ansible 或 shell)未同步配置文件,或文件权限/SELinux 上下文未继承,用 namei -l /etc/nginx/conf.d/active.conf 验证路径可达性

比对主备节点 error_log 差异

同一时刻,主节点和备节点的日志内容应高度一致(除角色相关字段)。若发现差异,说明状态未收敛:

  • 主节点 error.log 里有大量 [warn] 12345#67890: *1 upstream server temporarily disabled,而备节点没有 → 主节点 upstream 健康检查失败,但备节点未同步禁用该 server,可能造成脑裂流量
  • 备节点 error.log 出现 [emerg] unknown directive "keepalive_requests" → 两节点 Nginx 版本不一致(该指令 1.15.3+ 才支持),版本混用易引发 reload 失败
  • 主节点日志含 SSL_do_handshake() failed (SSL: ... certificate verify failed),备节点无 → SSL 证书未同步部署到备机,或证书链文件路径硬编码未适配

配合系统日志交叉验证切换动作

单看 Nginx error.log 容易断章取义,必须联动底层日志还原完整链路:

  • 查 Keepalived 日志:journalctl -u keepalived --since "5 minutes ago",确认是否完成 Entering MASTER STATE 并执行了 notify script
  • 查 Nginx reload 行为:journalctl -u nginx --since "5 minutes ago" | grep -E "(reloading|reload|start)",看是否收到 SIGHUP 或执行了 nginx -s reload
  • 查内核拦截:ausearch -m avc -ts recent | grep nginx(RHEL/CentOS),防止 SELinux 在切换后拒绝新上下文下的日志写入或配置读取

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

383

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3067

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

5605

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

541

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1456

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3918

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

122

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

417

2026.01.13

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

120

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn