You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下Nginx配置测试通过但重启失败求排查解决

你当前看到的journalctl日志全是gunicorn的运行日志,其中的Not Found: /是正常的业务访问404报错,和Nginx启动失败完全无关。你无法看到Nginx相关错误的核心原因是执行journalctl -xe时没有加sudo,日志提示已明确说明普通用户无法查看系统级服务的日志,所以没拿到有效报错信息。

排查步骤

  • 第一步:先抓取Nginx服务的专属错误日志,执行命令:
sudo journalctl -u nginx.service --since today

该命令会输出今日所有Nginx服务的运行日志,能直接定位启动失败的具体原因。

  • 第二步:如果上面的日志还不够直观,可以直接前台启动Nginx打印实时报错:
# 先杀干净可能残留的Nginx进程
sudo pkill -9 nginx
# 前台启动输出错误
sudo nginx -g 'daemon off;'

启动时的错误会直接输出到终端,不需要再翻日志。

配置校验通过但启动失败的常见原因

nginx -t仅校验配置语法合法性,不会校验运行时的权限、端口占用等资源类问题,所以会出现校验通过但启动失败的情况,常见触发场景如下:

  • 端口占用:80/443端口被其他服务(如Apache、其他web服务)占用,可执行sudo ss -tulpn | grep -E ':(80|443)' 检查端口占用情况,如果有其他进程占用端口,停掉对应服务或者修改Nginx监听端口即可。
  • 权限不足:配置文件中引用的路径(如网站根目录、SSL证书路径、日志存储路径、代理的Unix Socket路径)Nginx运行用户(默认是www-data)没有访问权限,需要对应调整路径权限。
  • 残留进程冲突:旧的Nginx进程没有正常退出,占用了pid文件或者端口,杀干净残留进程后再重启即可。
  • 资源不足:服务器内存耗尽导致Nginx启动失败,可执行free -h检查内存使用情况。

内容的提问来源于stack exchange,提问作者SJ19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:15:07