Nginx 反向代理排查三板斧:502、504、证书告警一网打尽

举报
yd_292915714 发表于 2026/11/01 09:44:37 2026/11/01
【摘要】 Nginx 反向代理三类高频故障的固定排查动作:502 查上游断点、504 查超时根因、证书告警查有效期与链完整性,附命令与思路。

从一次深夜告警说起

凌晨收到告警:官网接口大量 502。打开服务器一看,Nginx 还活着,后端应用也活着,问题出在哪?这类问题几乎每个运维和后端都遇到过。与其每次都靠猜,不如把 Nginx 反代最常见的三类故障总结成一套固定排查动作,遇事先走流程再下结论。

第一板斧:502 Bad Gateway 先看上游

502 的本质是 Nginx 找不到一个"能正常应答"的上游。按顺序确认三件事:一是后端进程是否在监听正确端口(ss -lntp 核对);二是 Nginx 里 proxy_pass 写的地址和端口是否与实际一致,尤其是容器场景下用 127.0.0.1 会指到容器自己;三是后端是否因内存或线程耗尽假死,curl 直接打后端端口最诚实。三步走完,九成 502 都能定位。

第二板斧:504 Gateway Timeout 查的是慢不是断

504 说明链路是通的,但上游没在规定时间内应答。先分清是全局慢还是个别接口慢:如果是少数慢接口,优先给 proxy_read_timeout 按业务调整,同时把慢接口异步化;如果是全面变慢,大概率是数据库或下游依赖拖住了,去看慢查询和连接池。注意一点:把超时时间调大只是止痛,找到慢的根因才是治病。

第三板斧:证书告警看有效期和链完整性

浏览器提示证书无效,先看两类问题:一是证书过期,用 openssl s_client -connect 域名:443 查有效期,配合 certbot 续期;二是证书链不完整,服务器只发了站点证书没发中间证书,curl 和部分安卓客户端会报错,而桌面浏览器因为缓存了中间证书看起来正常,最容易骗过排查的人。把 fullchain 配对配置,再用线上检测工具验证一遍。

把排查动作固化下来

三板斧的共同思路是:先分清故障层级——是断(502)、是慢(504)、还是不信任(证书),再按固定顺序逐层验证,而不是看到报错就重启碰运气。建议把这三套动作写成团队手册,配合 access_log 里的 upstream_response_time 字段,多数反代问题五分钟内能定位。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。