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

如何通过命令行让Next.js应用在Linux后台正常运行?

在Linux后台运行Next.js应用的正确方法

你遇到的问题核心是Next.js生产模式启动依赖预构建产物,且pm2的启动参数需要精准匹配npm脚本的执行逻辑,以下是几种可靠的解决方案:

方法一:用pm2正确启动生产模式应用

  1. 先完成项目构建(生产启动必须步骤):
npm run build
  1. 用pm2启动,推荐两种写法:
    • 通过npm脚本启动(明确指定执行start脚本):
    pm2 start npm --name "nextjs-13" -- run start
    
    • 直接启动Next.js生产服务器(更稳定,避免npm层的参数歧义):
    pm2 start node_modules/.bin/next --name "nextjs-13" -- start
    
  2. 验证运行状态:
pm2 list # 查看所有pm2进程
pm2 logs nextjs-13 # 查看应用日志,确认是否输出"ready started server on 0.0.0.0:3000"

方法二:使用pm2配置文件(适合长期维护)

在项目根目录创建ecosystem.config.js配置文件,方便统一管理进程参数:

module.exports = {
  apps: [{
    name: "nextjs-13",
    script: "node_modules/.bin/next",
    args: "start",
    instances: "max", // 根据CPU核心数启动多进程
    exec_mode: "cluster",
    env: {
      NODE_ENV: "production"
    }
  }]
};

然后执行启动命令:

pm2 start ecosystem.config.js

方法三:临时后台运行(适合快速测试)

如果不需要pm2的进程监控、自动重启功能,可临时用nohup实现后台运行:

nohup npm run start > next.log 2>&1 &

注意:这种方式在终端会话关闭后可能意外终止,仅适合短期测试场景。

额外排查点

如果按上述步骤仍无法访问,检查:

  • 服务器防火墙是否开放3000端口:sudo ufw allow 3000
  • 确认Next.js绑定地址为0.0.0.0(生产模式默认配置,允许外部访问)
  • 查看pm2日志是否有报错信息:pm2 logs nextjs-13

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:55:58