Nginx 在 Debian 上的系统化错误排查
一 快速定位流程
二 常见错误场景与对策
| 症状 | 优先检查 | 快速修复要点 |
|---|---|---|
| 启动失败/无法绑定端口 | 端口占用(ss -tlnp)、权限(1024 以下端口需 root)、配置语法(nginx -t)、系统日志(journalctl -xe) | 释放占用端口或调整 listen;以 root 启动或改用高端口;修正配置语法;按日志报错逐项修复 |
| 403 Forbidden | 目录索引(index)、文件权限与属主(/var/www 及上层目录)、SELinux/AppArmor(Debian 常见为 AppArmor)、location 匹配 | 配置正确的 index;确保 www-data 可读可执行;检查 AppArmor 配置;核对 location 与 deny/allow |
| 404 Not Found | server_name 与 Host 头匹配、root/alias 路径、try_files、文件是否存在 | 校正 server_name 与 Host;修正 root/alias;补充 try_files $uri $uri/ /index.html; |
| 502 Bad Gateway / 503 Service Unavailable | 上游存活与连通(systemctl status php*-fpm)、上游监听地址与端口、fastcgi_pass/proxy_pass 配置、上游日志 | 启动/重启上游;核对 fastcgi_pass 127.0.0.1:9000 或 socket 路径;查看 PHP-FPM 错误日志 |
| 504 Gateway Timeout | 上游处理耗时、超时与缓冲设置 | 适当增大 proxy_read_timeout / fastcgi_read_timeout;优化上游性能或分页/异步化 |
| 5xx(500/502/503/504) | error.log 首行错误描述、相关服务日志(PHP-FPM、数据库)、磁盘空间(df -h)、资源(top/htop)、配置参数(client_max_body_size 等) | 按错误提示修复脚本/配置;释放磁盘空间;调优超时与缓冲;必要时扩容或限流 |
三 日志与网络诊断
四 配置变更与维护
五 一键排查命令清单