在 Debian 上排查 Nginx 报错,一般按下面几个步骤来,从「看日志 → 定位错误 → 常见原因 → 处理」一步步走。
Debian 下 Nginx 默认日志路径:
# 错误日志(最重要)
/var/log/nginx/error.log
# 访问日志
/var/log/nginx/access.log
如果你用的是 虚拟主机(server block),可能各自有日志:
error_log /var/log/nginx/example.com.error.log;
access_log /var/log/nginx/example.com.access.log;
sudo tail -f /var/log/nginx/error.log
访问网站,同时看报错。
查看最近 50 行:
sudo tail -n 50 /var/log/nginx/error.log
Nginx 错误日志格式一般是:
2026/01/15 10:23:45 [error] 1234#1234: *56 open() "/var/www/html/test.html" failed (2: No such file or directory), client: 1.2.3.4, server: example.com, request: "GET /test.html HTTP/1.1"
关键信息:
open() ".../index.html" failed (2: No such file or directory)
✅ 原因:
检查:
server {
root /var/www/html;
index index.html index.php;
}
connect() failed (111: Connection refused) while connecting to upstream
✅ 原因:
解决:
sudo systemctl status php8.2-fpm
sudo systemctl restart php8.2-fpm
directory index of "/var/www/html/" is forbidden
✅ 原因:
检查:
ls -l /var/www/html
sudo chown -R www-data:www-data /var/www/html
nginx: [emerg] unknown directive "xxxx"
测试配置:
sudo nginx -t
修复后:
sudo systemctl reload nginx
bind() to 0.0.0.0:80 failed (98: Address already in use)
查看占用:
sudo ss -lntp | grep ':80'
如果你想看到更详细信息(调试用):
error_log /var/log/nginx/error.log debug;
⚠️ 调试完记得改回:
error_log /var/log/nginx/error.log error;
sudo nginx -t
sudo systemctl status nginx
sudo tail -f /var/log/nginx/error.log
如果你愿意,可以把 具体报错内容贴出来(一两行就行),我可以直接帮你判断是 配置问题 / 权限问题 / PHP / 反向代理 哪一种。