记录在 宝塔 Linux 面板 环境下,使用 PM2 部署 Node.js 应用,并通过 Nginx 绑定域名与配置 HTTPS SSL 证书 的完整流程。内容涵盖 Node 环境安装、PM2 进程管理、Nginx 反向代理、域名解析、SSL 证书申请以及常见问题排查,适用于 生产环境部署。
一、环境准备
- Linux 服务器(CentOS / OpenCloudOS / Rocky / Alma)
- 已安装宝塔 Linux 面板
- 已安装 Nginx
- 已解析域名到服务器公网 IP
二、安装 Node.js(Node 20+)
方式一:宝塔 Node 版本管理(推荐)
宝塔面板 → 软件商店 → Node.js 版本管理 → 安装 Node v20.x LTS
安装路径示例:
/www/server/nvm/versions/node/v20.10.0
验证:
node -v
npm -v
三、安装 PM2
1. 设置 npm 国内镜像
npm config set registry https://registry.npmmirror.com
npm config get registry
2. 全局安装 PM2
npm install -g pm2
验证:
pm2 -v
四、PM2 开机自启(必须)
pm2 startup
按提示执行 systemd 命令后:
pm2 save
五、部署 Node 项目
1. 上传项目
示例路径:
/www/wwwroot/api.leviqin.top
安装依赖:
cd /www/wwwroot/api.leviqin.top
npm install
2. 启动 Node 服务
pm2 start app.js --name api
常用命令:
pm2 status
pm2 logs api
pm2 restart api
pm2 stop api
pm2 delete api
3. 确认端口监听
ss -lntp | grep node
六、Node 监听配置(非常重要)
app.listen(9527, '0.0.0.0', () => {
console.log('Server running');
});
❌ 不要监听公网 IP
❌ 不要监听域名
七、宝塔配置 Nginx 反向代理
1. 新建网站
宝塔 → 网站 → 添加站点
- 域名:
api.leviqin.top - 根目录:任意(Node 不用)
2. 添加反向代理
宝塔 → 网站 → 设置 → 反向代理
- 目标 URL:
http://127.0.0.1:9527 - 发送域名:
$host
八、配置 HTTPS / SSL
宝塔 → 网站 → SSL → Let’s Encrypt
勾选 强制 HTTPS
九、Vue 前端 404 解决(history 模式)
location / {
try_files $uri $uri/ /index.html;
}
十、数据库连接注意事项
线上数据库 host 必须使用:
host: '127.0.0.1'
❌ 不要使用服务器公网 IP
十一、常见问题
1. 关闭终端服务停止?
❌ node app.js
✅ pm2 start app.js
2. PM2 服务 inactive?
只要:
pm2 status
显示 online 即正常。
3. 接口 500 / 502
pm2 logs api --err
十二、部署完成检查清单
- [x] PM2 启动 Node
- [x] PM2 已 save
- [x] Nginx 反向代理
- [x] 域名可访问
- [x] HTTPS 正常
- [x] 重启服务器服务仍在线
总结
Node 只负责端口
Nginx 负责域名和 SSL
PM2 负责常驻和重启
这是最稳定、最标准的线上 Node 部署方案。
阅读进度 0%
private note
交流
文章暂不开放公开评论。如果你有想法、问题或建议,欢迎私下联系站长。
联系站长 →