Debian 上 Nginx 错误代码解析与解决
一 快速定位与通用排查
二 常见错误代码与处理要点
| 状态码 | 含义 | 快速判断 | 处理要点 |
|---|---|---|---|
| 400 Bad Request | 请求语法错误 | error.log 提示 malformed、invalid header 等 | 检查客户端请求与反向代理/上游的请求头、Content-Length、URI 编码 |
| 403 Forbidden | 服务器拒绝 | error.log 出现 Permission denied 或 denied by rule | 核对 allow/deny 规则;确保站点目录对 www-data 可读(目录 755、文件 644);检查 index 指令与目录浏览设置 |
| 404 Not Found | 资源不存在 | error.log 显示 No such file or directory | 确认文件路径、root 与 alias 配置、SPA 路由回退(try_files) |
| 413 Request Entity Too Large | 请求体过大 | 上传/POST 大文件被拒 | 在 http/server/location 中设置 client_max_body_size 20M; 并重载 |
| 499 Client Closed Request | 客户端提前关闭 | 常与长耗时请求、反向代理超时相关 | 优化后端处理时长;必要时调整反向代理超时;前端增加上传进度与超时提示 |
| 500 Internal Server Error | 服务器内部错误 | error.log 含脚本报错、配置错误、资源不足等 | 查 error.log 与后端日志;修正脚本/配置;检查磁盘空间、文件描述符等系统资源 |
| 502 Bad Gateway | 上游无响应/拒绝 | error.log 出现 connect() failed (111: Connection refused) 或 upstream timed out | 确认上游(如 PHP-FPM/uWSGI)运行、地址/端口/套接字正确;检查上游日志与防火墙/安全组 |
| 503 Service Unavailable | 服务不可用 | 上游宕机/过载/维护 | 恢复上游;检查进程与资源;必要时配置重试/熔断与维护页 |
| 504 Gateway Timeout | 上游响应超时 | error.log 出现 upstream timed out | 增大反向代理超时:proxy_read_timeout 90; proxy_send_timeout 90; 并优化上游性能 |
| Address already in use | 端口被占用 | 启动失败,提示 bind() to 0.0.0.0:80 failed (98: Address already in use) | 用 **ss -tulpen |
| 以上要点与命令适用于 Debian 上的 Nginx,日志默认位于 /var/log/nginx/(access.log、error.log)。 |
三 高频场景的配置示例
四 日志分析与可视化