Nginx 错误日志运行手册代理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/nginx-error-log-runbook-agent
技能介绍
要解决的问题
排查 Nginx 故障时,最直接的线索往往躺在 error.log 里:一次上游超时会抛出 upstream timed out,一次 TLS 客户端版本过低会留下 SSL handshake failure,而配置里 proxy_pass 指向的后端不通时则会刷出 502 Bad Gateway。问题在于,日志只告诉你「发生了什么」,要定位「为什么会发生」还需要把出错配置、upstream 定义和后端健康状态拼在一起看。人工翻配置文件、grep 日志、登录后端机器确认端口,很容易在凌晨的告警里漏掉关键上下文。
这个技能针对的正是这三类高频故障:
502 Bad Gateway:后端拒绝连接或端口未监听- SSL 握手失败:证书、协议版本或 cipher 不匹配
- 上游超时:
proxy_read_timeout与后端实际耗时不匹配
它如何工作
核心思路是把诊断过程串成一条可复现的链路,而不是简单打印日志:
- 配置提取:通过
nginx -T拿到当前生效的完整配置快照,避免在多份nginx.conf和conf.d/之间手工比对 - 日志模式匹配:按错误类型对
error.log做模式识别,筛出与故障时间窗口匹配的条目 - 上游状态查询:在 Nginx Plus 环境下调用 REST API 的
/api/8/http/upstreams端点,确认后端节点的当前状态和健康情况
三步结果放在一起,就能判断故障是出在 Nginx 配置、上游服务还是 TLS 协商链路上。
适用边界与注意点
这个技能适合已经有明确错误日志的事后诊断,不是通用的配置校验工具。它不负责生成 nginx.conf,也不替代压测和监控。
另外,技能文档引用了 Nginx 上游 README.md,其中提到 make 相关的编译与模块配置流程,意味着部分场景需要自行构建 Nginx,而不是直接用发行版包。共享内存区(shared memory zones)在 rate limiting 等功能里是必需的,nginx -T 看到的是运行中进程的配置,不会反映未加载的模块。
使用场景
- 生产环境502 Bad Gateway告警触发时,需快速判断是Nginx配置错误还是后端服务异常
- SSL握手失败导致客户端无法访问,需定位证书配置或协议版本冲突
- 上游服务响应缓慢引发超时,需结合error.log和upstreams API分析延迟根因
- 配置变更后出现间歇性502,需通过nginx -T确认生效配置是否包含错误指令
适合人员
- 负责生产环境稳定性的SRE工程师,需要缩短故障定位时间
- 管理Nginx集群的运维人员,需标准化错误日志分析流程
- 开发高可用Web服务的工程师,需快速验证upstream配置有效性
- 安全工程师排查TLS配置问题,需自动化SSL握手失败诊断