返回博客

28 项目挂了怎么办?一套万能排查流程

28 项目挂了怎么办?一套万能排查流程

导语:项目一定会挂——重点不是"不挂",是"挂了不慌"。这一篇给你一套从外到内的万能排查流程:去哪找报错、用什么命令、怎么让 AI 帮你。

你的待办应用上线了(26 篇)。总有一天,它会出问题:打不开了、报 502、数据丢了。排查不是天赋,是流程——按顺序查,问题就藏不住。

核心思路一句话:从外到内,一层层查——像医生问诊:先看症状(打不开?报什么错?),再一层层往里查(门口的 Nginx → 后厨的应用 → 冰箱的数据库 → 整栋楼的水电)。

一、四层排查总表

层 查什么 去哪看 命令
① 入口层 Nginx 有没有把请求接住 Nginx 日志 tail -f /var/log/nginx/error.log
② 应用层 程序有没有报错 应用日志 docker logs 容器名
③ 数据层 数据库连不连得上 数据库日志/连接 docker logs db容器 / 连接测试
④ 资源层 服务器还扛得住吗 磁盘/内存/CPU df -h / free -h / top

经验:按这个顺序查,90% 的问题在①②层就找到了——多数"网站打不开"根本不是代码问题,是 Nginx 配置或应用没起来。

二、逐层拆解

① 入口层:先看 Nginx(17 篇)

"网站打不开",第一现场是 Nginx 日志:

sudo tail -f /var/log/nginx/error.log
  • 看到 502 Bad Gateway → Nginx 活着,但转发目标(你的应用)没起来 → 去②层。
  • 看到 403 → 权限问题。
  • 看到连接超时 → 应用太慢或没响应。

经验:tail -f 是"实时盯着看"(14 篇)——一边刷新网站,一边看日志滚动,报错会自己蹦出来。

② 应用层:看应用日志(14 + 25 篇)

你的应用是 Docker 部署的,日志在容器里:

docker logs 容器名        # 看最近日志
docker logs -f 容器名     # 实时看(-f 和 tail -f 一个意思)

看到 Python 报错(Traceback)→ 贴给 AI(29 篇细讲);看到"服务启动成功"但网站还是 502 → 问题在 Nginx 到应用的连接,回①层检查转发地址。

③ 数据层:查数据库(10 + 15 篇)

应用起来了但功能报错(如"数据库连接失败"):

docker logs 数据库容器名   # 看数据库自己报什么

常见三类:服务没起(容器没跑)、账号密码错(15 篇 Access denied)、端口/防火墙没放行(10 篇)。数据库是容器的话,优先看它的日志。

④ 资源层:看服务器还扛得住吗

前三层都正常还挂,查服务器本身:

df -h     # 磁盘:满了没有(日志写满磁盘是最常见的事故)
free -h   # 内存:还剩多少
top       # CPU:哪个进程在吃资源

磁盘满(df -h 显示 100%)是最容易被忽略的——日志、图片、备份堆满了,服务就写不进去了。清日志、删无用文件即可。

三、怎么让 AI 帮你(贴对信息)

排查到报错,让 AI 分析——但要贴对信息(22 篇②的上下文三要素):

  1. 日志原文(最关键):把报错那几行原样复制,别转述"它报错了"。
  2. 环境:"Docker 部署,Ubuntu,Flask + SQLite"。
  3. 时间点:"今天下午 3 点开始打不开"(如果日志有时间戳,带上)。

示例提问:

"我的待办应用(Docker 部署,Flask+SQLite)今天下午 3 点起网站打不开。Nginx error.log 最后 5 行是:……(贴原文)。帮我分析原因并给修复步骤。"

经验:日志原文是给 AI 的"病历",转述是"听说"——贴原文,AI 一次定位;转述,来回十轮。

四、避坑清单

  • 别在没看日志前瞎重启:重启会清掉线索(内存日志没了)——先看日志再动手。
  • 磁盘满是最常被忽略的:df -h 一定要查——"什么都没改就挂了"多半是它。
  • 看日志要带时间:和"挂的时间点"对比,才能定位到当时的报错。
  • 日志要贴原文:给 AI 的是原文,不是你的理解(22 篇铁律)。
  • 逐层排查,别跳层:Nginx 报 502 就先去查应用,别直接在数据库上折腾——按链路走(19 篇)。

总结

  • 核心思路:从外到内,四层排查——入口(Nginx)→ 应用 → 数据库 → 资源。
  • 命令速查:tail -f nginx日志、docker logs 容器、df -h、free -h、top。
  • 90% 的问题在①入口层②应用层找到:502 = 应用没起来,403 = 权限,日志会说话。
  • 让 AI 帮:贴日志原文 + 环境 + 时间点——原文是病历,转述是听说。
  • 避坑四条:先看日志再动手、磁盘满必查、带时间对比、逐层不跳层。

10 分钟小任务:趁项目没挂,先"演习"一次——SSH 上服务器,把四层命令各跑一遍:tail -f 看 Nginx 日志(Ctrl+C 退出)、docker logs 你的容器、df -h、free -h。知道去哪找报错,比会修报错更重要——下次真挂了,你不会慌。下一篇,讲透"怎么把报错喂给 AI"这门手艺。

下一篇:怎么把报错信息喂给 AI,让它帮你解决。