5分钟可完成Node.js应用上线部署。通过pm2启动服务并设置开机自启,Nginx反向代理转发请求,注意监听地址设为0.0.0.0、端口统一、防火墙仅开放80/443,日志用pm2 logs查看。

直接用 pm2 启动,配合 Nginx 反向代理,不用 systemd、不用 Docker,5 分钟搞定上线。
1. 上传代码并安装依赖
把项目文件传到服务器(比如用 scp 或 git clone),进入项目目录后执行:
2. 用 pm2 启动服务
全局安装 pm2(如果还没装):
- npm install -g pm2
- 启动项目:pm2 start npm --name "myapp" -- start
- 开机自启:pm2 startup,再运行它输出的那条命令(如 sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u youruser --hp /home/youruser)
- 保存当前进程列表:pm2 save
3. 配置 Nginx 反向代理
编辑 Nginx 站点配置(如 /etc/nginx/sites-available/myapp):
- 指向你的域名或 IP,proxy_pass http://127.0.0.1:3000(假设 Node 监听 3000)
- 加上 proxy_http_version 1.1 和 proxy_set_header Upgrade $http_upgrade(支持 WebSocket)
- 启用配置:ln -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/,再 nginx -t && systemctl reload nginx
4. 小心几个关键点
- Node 进程默认监听 localhost,要改成 0.0.0.0 才能被 Nginx 转发
- 确保 PORT 环境变量或代码里端口统一(推荐用 process.env.PORT || 3000)
- 防火墙放行 80/443(Nginx),不用开 Node 的端口(如 3000)对外
- 日志看这里:pm2 logs myapp,出问题第一时间查
基本上就这些。不复杂但容易忽略端口和监听地址,配完跑通一次,后续部署就只是改代码 + pm2 reload。










