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

如何在Plesk主域名下安全部署Next.js更新站点?

在Plesk VPS上为主域名部署Next.js应用的解决方案

第一步:解决端口占用问题(EADDRINUSE: :::3000)

  • 通过SSH连接VPS,查找占用3000端口的进程:
    netstat -tulpn | grep :3000
    # 或用lsof命令
    lsof -i :3000
    
  • 找到对应进程PID后,强制终止:
    kill -9 <进程PID>
    
  • 若不想终止现有进程,可修改Next.js启动端口,在Start命令后加-p参数指定新端口(比如3001),后续所有配置需对应这个新端口。

第二步:标准Plesk部署流程(安全替换旧站点)

1. 备份旧站点文件

先把主域名下的原有HTML/CSS/JS站点打包备份,避免数据丢失:

tar -czf /var/www/vhosts/your-domain.com/old-site-backup.tar.gz /var/www/vhosts/your-domain.com/httpdocs

2. 上传并配置Next.js项目

  • 将本地已执行npm run build的Next.js项目文件(包括.next、package.json、package-lock.json)上传到主域名的独立目录,比如/var/www/vhosts/your-domain.com/next-app。
  • 登录Plesk面板,进入主域名的「网站与域名」页面,找到「Node.js」选项并启用:
    • 应用根目录:选择刚才上传的next-app目录(绝对路径);
    • 文档根目录:设置为/var/www/vhosts/your-domain.com/next-app/.next/static;
    • 启动文件:留空或填写node_modules/next/dist/bin/next;
    • Build命令:填写npm run build(确保项目package.json里有"build": "next build"脚本);
    • Start命令:填写next start -p 3001(用之前确定的未占用端口)。

3. 配置反向代理

Plesk通常会自动生成反向代理规则,若未生效,手动在「Apache & Nginx设置」的「附加Nginx指令」中添加:

location / {
    proxy_pass http://localhost:3001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

4. 启动并验证

点击Node.js面板的「启动」按钮,查看日志确认无错误后,访问主域名检查站点是否正常运行。

第三步:备选方案——用PM2管理进程(更稳定)

若需要更可靠的进程管理,可使用PM2:

  1. 通过SSH安装PM2:
    npm install pm2 -g
    
  2. 在Next.js项目目录创建ecosystem.config.js:
    module.exports = {
      apps: [{
        name: 'your-next-app',
        script: 'node_modules/next/dist/bin/next',
        args: 'start -p 3001',
        cwd: '/var/www/vhosts/your-domain.com/next-app',
        env: {
          NODE_ENV: 'production'
        }
      }]
    };
    
  3. 启动进程并设置开机自启:
    pm2 start ecosystem.config.js
    pm2 startup
    pm2 save
    
  4. 同样配置Nginx反向代理指向3001端口即可。

安全注意事项

  • 确保Plesk中选择的Node.js版本与本地开发环境一致,避免兼容性问题;
  • 部署前关闭旧站点的相关服务,彻底释放端口;
  • 定期备份Next.js项目文件和Plesk配置;
  • 开启Plesk防火墙,仅对外开放80、443端口,内部端口(如3001)限制为本地访问。

内容的提问来源于stack exchange,提问作者empty room.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:47:26