温馨提示×

debian nginx为何启动失败

小樊
43
2026-09-09 13:41:52
栏目: 智能运维

Debian 上 nginx 启动失败 常见原因有很多,下面按最常见 → 较少见的顺序帮你排查。


一、先查看真实错误(最关键)

不要只看 “failed”,要看原因:

sudo systemctl status nginx
sudo journalctl -xeu nginx

或者前台启动看报错:

sudo nginx -t
sudo nginx

二、最常见原因

1️⃣ 配置文件语法错误(最常见)

sudo nginx -t

常见错误:

  • 少了 ;
  • server_name 写错
  • location 括号不匹配

✅ 修改后:

sudo nginx -t
sudo systemctl restart nginx

2️⃣ 端口被占用(80 / 443)

sudo ss -lntp | grep ':80\|:443'

常见冲突:

  • apache2
  • 另一个 nginx
  • docker

解决:

sudo systemctl stop apache2

或修改 nginx 端口


3️⃣ 网站目录或文件不存在

例如:

root /var/www/example;

但目录不存在

ls /var/www/example

4️⃣ 权限问题

  • nginx 用户无权限读取文件
  • SELinux(Debian 一般没开)
ps aux | grep nginx

默认用户是 www-data

sudo chown -R www-data:www-data /var/www

5️⃣ 证书错误(HTTPS)

SSL_CTX_use_PrivateKey failed

原因:

  • 证书路径错
  • 证书和 key 不匹配

检查:

sudo nginx -t

三、Debian 特有情况

6️⃣ 没启用站点

ls /etc/nginx/sites-enabled/

空的话:

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/

7️⃣ 服务根本没装好

which nginx

没有就:

sudo apt install nginx

四、快速自检清单 ✅

sudo nginx -t
sudo systemctl status nginx
sudo ss -lntp | grep nginx

如果你愿意,把下面内容贴出来,我可以直接帮你定位:

sudo nginx -t
sudo systemctl status nginx
sudo journalctl -xeu nginx

0