导语:项目一定会挂——重点不是"不挂",是"挂了不慌"。这一篇给你一套从外到内的万能排查流程:去哪找报错、用什么命令、怎么让 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 篇②的上下文三要素):
- 日志原文(最关键):把报错那几行原样复制,别转述"它报错了"。
- 环境:"Docker 部署,Ubuntu,Flask + SQLite"。
- 时间点:"今天下午 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,让它帮你解决。
