Debian 上 Nginx 日志为空,通常不是“没装好”,而是日志路径、配置、权限或请求没进来这几类原因。下面按最常见情况逐一排查。
Debian 默认路径通常是:
/var/log/nginx/access.log
/var/log/nginx/error.log
但如果你用的是:
路径可能完全不同。
✅ 查实际路径:
nginx -T 2>/dev/null | grep -E 'access_log|error_log'
curl http://127.0.0.1
curl http://localhost
如果:
✅ 看状态:
systemctl status nginx
✅ 看监听端口:
ss -lntp | grep nginx
某些“优化脚本”或 Docker 镜像会写:
access_log /dev/null;
error_log /dev/null;
✅ 搜索一下:
grep -R "dev/null" /etc/nginx/
例如:
access_log off;
或:
access_log /var/log/nginx/access.log;
但文件不存在 / 权限不对
✅ 测试配置:
nginx -t
常见于高并发配置:
access_log /var/log/nginx/access.log main buffer=32k flush=5m;
✅ 临时验证:
access_log /var/log/nginx/access.log;
然后:
nginx -s reload
ls -l /var/log/nginx/
ps aux | grep nginx
nginx worker 用户通常是:
user www-data;
如果日志文件属主不是 www-data:
chown www-data:adm /var/log/nginx/access.log
chmod 640 /var/log/nginx/access.log
在 Docker 中:
✅ 查看:
docker logs <nginx容器名>
或 nginx 配置:
access_log /dev/stdout;
error_log /dev/stderr;
journalctl -u nginx --no-pager -n 50
nginx -t
systemctl status nginx
ss -lntp | grep nginx
curl 127.0.0.1
nginx -T | grep log
ls -l /var/log/nginx
如果你愿意,可以把下面信息发我,我可以直接帮你定位:
nginx -T 输出(脱敏)我可以一步到位告诉你到底是哪一条导致的。