8号码库
8号码库

暂无菜单项

首页/社区/广场/技术交流/
打开 MD 链接

Node.js 项目源码部署实战:PM2 进程守护 + Nginx 反向代理

maoku
发布于 2周前更新于 2周前
597

Node.js 是单进程事件驱动模型,一旦进程崩溃服务就会中断,因此进程守护是 Node 项目上线的必备环节。本文用 PM2 守护进程、Nginx 做反向代理,把 Node 源码稳定地跑起来。

一、安装 Node.js

推荐用 nvm 管理版本,方便切换与回退:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20 && nvm use 20

验证:node -v 与 npm -v。

二、拉取源码并安装依赖

cd /www/wwwroot
git clone https://github.com/your/repo.git app
cd app && npm install --production

生产环境优先用 npm ci(有 lock 文件时),保证依赖版本完全一致。

三、用 PM2 守护进程

npm install -g pm2
pm2 start app.js --name myapp -i max   # 按 CPU 核数起多实例
pm2 save && pm2 startup               # 设置开机自启

常用命令:pm2 status 看状态、pm2 logs myapp 看日志、pm2 restart myapp 重启。

四、环境变量管理

不要硬编码密钥,用 ecosystem.config.js 集中管理:

module.exports = {
  apps: [{
    name: 'myapp',
    script: 'app.js',
    env: { NODE_ENV: 'production', PORT: 3000, DB_URL: '...' }
  }]
};

五、Nginx 反向代理 + HTTPS

server {
  listen 80;
  server_name example.com;
  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

注意:Nginx 只监听 80/443,Node 应用监听 3000 并仅绑定 127.0.0.1,避免端口直接暴露。HTTPS 证书配置与其他服务一致,代理到同端口即可。

六、日志与监控

  • PM2 日志:pm2 logs --lines 100。
  • 配置日志轮转:pm2 install pm2-logrotate,避免日志撑爆磁盘。
  • 内存异常自动重启:pm2 start app.js --max-memory-restart 300M。

进程守护 + 反向代理是 Node 上线的标准姿势。PM2 解决「崩了谁来拉起」,Nginx 解决「入口和 HTTPS」,两者分工明确,缺一不可。

0 / 600
细中粗
3 讨论
热门最新
总结
评论者对Node项目源码上线全流程的教程表示赞赏,认为内容实用,步骤清晰,对初学者友好。
摆烂极客

感谢分享,我在源码部署方面学到了很多新知识。

9/3
站长大熊

教程中提到的HTTPS配置步骤清晰,对于初学者来说非常友好。

9/3
站长小明

这篇文章对Node.js项目的部署实战讲解得非常详细,特别是PM2进程守护和Nginx反向代理的配置,让我受益匪浅。

9/3
热门帖子
  • 8号码库社区版规与发帖指引(新人必读)

    8
    置顶
    8/27326 浏览
  • 半夜两点还在调源码,我劝你这几个瞬间别硬刚

    3
    9/13531 浏览
  • WordPress 源码手动安装与性能优化全流程

    6
    9/34.7K 浏览
  • 宝塔面板从零部署网站源码:LNMP 环境一键搭建全流程

    5
    9/3510 浏览
  • 前端项目源码构建与部署:Vue/React + Nginx 静态托管与 SSR

    3
    9/3375 浏览
  • Docker 容器化源码部署:Dockerfile 与 Compose 编排实战

    5
    9/3773 浏览
  • Node.js 项目源码部署实战:PM2 进程守护 + Nginx 反向代理

    3
    9/3597 浏览
  • 从源码部署 Java Spring Boot:打包 Jar 包 + systemd 守护

    3
    9/3635 浏览
  • 半小时上线个人博客/知识库:通用部署流程(附流程图)

    2
    8/252.4K 浏览
  • 自己搭轻量网盘:Cloudreve 开箱即用(附架构图)

    5
    8/28463 浏览
8号码库
8号码库
首页
源码下载
交流社区
网址导航
版权所有 8号码库
隐私政策常见问题联系我们
捐赠❤️