一张图读懂Nginx常规报错,让处理报错信手拈来
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
上周帮一个同事排查问题,他说上传一个8M的图片报413,问我是不是Nginx出bug了。 我一看, 一个413,折腾了他一下午。 这件事让我想把Nginx常见的报错整理一下。502、504、499、403、413、400,每个报错代表什么问题?怎么一步步排查?今天一张图讲清楚。下次你再遇到,10分钟内就能定位到问题层。 一张图表带你走通Nginx报错排查路线图先上干货。把最常见的几个报错按“问题出在哪一层”分了类:
下面我把每个报错拆开讲,结合我遇到过的案例。 方向一:502 Bad Gateway——后端挂了或连不上这是我遇到最频繁的报错。 第一次遇到502,我以为是Nginx的问题,重启了好几次Nginx,没用。后来才发现,是后端的PHP-FPM进程挂了。 502的本质: Nginx作为网关,向后端(PHP-FPM、Tomcat、Node.js)发请求,但没收到有效响应。 常见原因和排查方法:
我当时怎么排查的: 遇到502,先做三件事:
这三步走完,90%的502都能定位。 配置层面的预防: 这样配之后,一个后端挂了,Nginx会自动尝试下一个。 方向二:504 Gateway Timeout——后端干活太慢了504和502经常被搞混。
504的本质: Nginx向后端发了请求,在 常见场景:
我当时怎么排查的: 有一次导出报表,点完按钮转了30秒,然后504了。Nginx error.log显示:
马上明白是超时时间太短。默认 怎么解决:
方向三:499 Client Closed Request——用户等不及关掉了这个报错比较特殊。它不是Nginx主动报的,是客户端主动断开连接时Nginx记录下来的。 本质: 用户发请求给Nginx,Nginx转给后端,后端还在处理,用户等不及关了浏览器/点了取消。 常见场景: 499是不是问题?
怎么排查: 看Nginx access.log,统计499的比例: 如果499很多,同时504也很多,说明后端太慢。如果只有499没有504,可能是用户网络问题。 方向四:403 Forbidden——权限不够403相对好排查,就是Nginx没有权限读这个文件,或者配置不允许访问。 常见原因:
我遇到的一个真实案例: 配了一个新站点,html文件都放好了,访问就是403。查了半天,发现是SELinux在作怪。
方向五:413 Request Entity Too Large——文件太大了上传大文件时遇到的经典报错。 本质: 怎么解决:
方向六:400 Bad Request——请求格式有问题400相对少见,但遇到就很头疼,因为Nginx给的提示很少。 常见原因:
排查方法: 然后看error.log里有没有具体提示。 一个真实的排查案例上周同事跑过来说:“网站502了,帮我看看。” 我按路线图走了一遍:
5分钟搞定。 同事说他自己折腾了半小时。 排查路线图的价值就在这里——不慌,一步一步来,10分钟内一定能定位到问题层。 常见报错速查表
写在最后Nginx报错这件事,说白了就是学会看日志 + 知道每个报错对应哪一层。 我最开始遇到报错就慌,后来发现80%的问题都在几张表里。现在遇到报错,第一件事不是重启,而是去看error.log——日志里90%的情况已经告诉你答案了。 阅读原文:原文链接 该文章在 2026/4/14 15:19:17 编辑过 |
关键字查询
相关文章
正在查询... |