Nginx 在 Debian 上启动失败的原因有很多,下面按最常见 → 较少见的顺序帮你梳理,并给出快速排查方法。
报错示例:
Address already in use
排查:
sudo ss -tulnp | grep ':80\|:443'
常见占用者:
apache2)解决:
sudo systemctl stop apache2
# 或
sudo fuser -k 80/tcp
报错示例:
Job for nginx.service failed because the control process exited with error code.
第一步永远先运行:
sudo nginx -t
✅ 它会直接告诉你哪一行配置错了。
例如:
root /var/www/not_exist;
报错:
No such file or directory
解决:
sudo mkdir -p /var/www/not_exist
如果你 手动运行 nginx 而不是 systemctl:
nginx
❌ 会失败(普通用户不能绑定 1024 以下端口)
✅ 正确方式:
sudo systemctl start nginx
ls -ld /var/www
推荐:
sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www
sudo journalctl -xeu nginx
或直接看 nginx 日志:
sudo tail -n 50 /var/log/nginx/error.log
sudo ufw status
sudo apt install --reinstall nginx
你可以照着做:
sudo nginx -t
sudo journalctl -xeu nginx
sudo ss -tulnp | grep ':80'
sudo systemctl status nginx
如果你愿意,可以把 报错信息贴出来(特别是 journalctl 或 nginx -t 的输出),我可以直接帮你定位到具体原因。